Esempio n. 1
0
    private void Awake()
    {
        _inputSystem = FindObjectOfType <MixedRealityToolkit>().GetService <MixedRealityInputSystem>();
        _virtualCity = FindObjectOfType <VirtualCity>();

        var ooi = GetComponent <OOI>();

        if (ooi)
        {
            Destroy(ooi);
        }
        Destroy(GetComponent <AugmentixTransformView>());
        Destroy(GetComponent <PhotonView>());

        _manipulator = gameObject.AddComponent <ObjectManipulator>();
        _manipulator.ReleaseBehavior = 0;
        gameObject.AddComponent <NearInteractionGrabbable>();
        gameObject.AddComponent <MinMaxScaleConstraint>();
        _manipulator.OnManipulationStarted.AddListener(OnManipulation);
        _manipulator.OnManipulationEnded.AddListener(data =>
        {
            GetComponent <Rigidbody>().velocity        = Vector3.zero;
            GetComponent <Rigidbody>().angularVelocity = Vector3.zero;
        });
    }
        static void Main()
        {
            var fullscreen = false;

read_input:
            switch (Microsoft.VisualBasic.Interaction.InputBox("Which assignment shall run next? (1, 2, 3, 4, or q for quit)", "Choose assignment", VirtualCity.GetInitialValue()))
            {
            case "1":
                using (var game = VirtualCity.RunAssignment1(SortSpecialBuildingsByDistance, fullscreen))
                    game.Run();
                break;

            case "2":
                using (var game = VirtualCity.RunAssignment2(FindSpecialBuildingsWithinDistanceFromHouse, fullscreen))
                    game.Run();
                break;

            case "3":
                using (var game = VirtualCity.RunAssignment3(FindRoute, fullscreen))
                    game.Run();
                break;

            case "4":
                using (var game = VirtualCity.RunAssignment4(FindRoutesToAll, fullscreen))
                    game.Run();
                break;

            case "q":
                return;
            }
            goto read_input;
        }
Esempio n. 3
0
 // Start is called before the first frame update
 void Start()
 {
     _deskzone        = FindObjectOfType <Deskzone>();
     _warpzoneManager = FindObjectOfType <WarpzoneManager>();
     _virtualCity     = FindObjectOfType <VirtualCity>();
     _mainCamera      = Camera.main;
 }
Esempio n. 4
0
        static void Main()
        {
            var fullscreen = false;

            Console.WriteLine("Which assignment shall run next? (1, 2, 3, 4, or q for quit)");
            var level = Console.ReadLine();

            if (level == "1")
            {
                var game = VirtualCity.RunAssignment1(SortSpecialBuildingsByDistance, fullscreen);
                game.Run();
            }
            else if (level == "2")
            {
                var game = VirtualCity.RunAssignment2(FindSpecialBuildingsWithinDistanceFromHouse, fullscreen);
                game.Run();
            }
            else if (level == "3")
            {
                var game = VirtualCity.RunAssignment3(FindRoute, fullscreen);
                game.Run();
            }
            else if (level == "4")
            {
                var game = VirtualCity.RunAssignment4(FindRoutesToAll, fullscreen);
                game.Run();
            }
        }
Esempio n. 5
0
        private void Start()
        {
            Collider            = GetComponent <Collider>();
            _interactionManager = FindObjectOfType <InteractionManager>();
            _virtualCity        = FindObjectOfType <VirtualCity>();
#if UNITY_WSA
            var prefab = FindObjectOfType <InteractionManager>().InteractionOrbPrefab;

            InteractionOrb =
                Instantiate(prefab, transform.position + new Vector3(0, Collider.bounds.size.y, 0),
                            transform.rotation).GetComponent <InteractionOrb>();
            InteractionOrb.Target = this;
            InteractionOrb.GetComponent <ObjectManipulator>().OnManipulationStarted.AddListener(eventData =>
            {
                GetComponent <PhotonView>().RequestOwnership();
            });
#endif

            if (Flags.HasFlag(InteractionFlag.Manipulate))
            {
                var rigidbody = GetComponent <Rigidbody>();
                if (!rigidbody)
                {
                    rigidbody = gameObject.AddComponent <Rigidbody>();
                }
                rigidbody.useGravity = false;
#if UNITY_WSA
                var manipulator = gameObject.AddComponent <ObjectManipulator>();
                manipulator.ReleaseBehavior = 0;
                gameObject.AddComponent <NearInteractionGrabbable>();
                gameObject.AddComponent <MinMaxScaleConstraint>().ScaleMaximum *= 2;
                manipulator.OnManipulationStarted.AddListener(data =>
                {
                    GetComponent <PhotonView>().RequestOwnership();
                });
                manipulator.OnManipulationEnded.AddListener(data =>
                {
                    IsBeingManipulated = false;
                    StartCoroutine(StopMovement());
                    IEnumerator StopMovement()
                    {
                        yield return(null);

                        GetComponent <Rigidbody>().velocity        = Vector3.zero;
                        GetComponent <Rigidbody>().angularVelocity = Vector3.zero;
                    }
                });
#elif UNITY_ANDROID
                gameObject.AddComponent <CustomGrabbable>();
#endif
            }
        }
Esempio n. 6
0
        static void Main()
        {
            var fullscreen = false;

            Console.WriteLine("Enter number of simulation to run - [1 - 4, q]");

            while (true)
            {
                switch (Console.ReadLine())
                {
                case "1":
                    using (var game = VirtualCity.RunAssignment1(SortSpecialBuildingsByDistance,
                                                                 fullscreen))
                        game.Run();
                    break;

                case "2":
                    using (var game = VirtualCity.RunAssignment2(FindSpecialBuildingsWithinDistanceFromHouse,
                                                                 fullscreen))
                        game.Run();
                    break;

                case "3":
                    using (var game = VirtualCity.RunAssignment3(FindRoute, fullscreen))
                        game.Run();
                    break;

                case "4":
                    using (var game = VirtualCity.RunAssignment4(FindRoutesToAll, fullscreen))
                        game.Run();
                    break;

                case "q":
                    return;

                default:
                    Console.WriteLine("Invalid input! Try again! - [1 - 4, q]");
                    break;
                }
            }
        }
Esempio n. 7
0
    private void Start()
    {
        _view        = GetComponent <PhotonView>();
        _virtualCity = FindObjectOfType <VirtualCity>();
        if (_view.IsMine)
        {
            Mine = this;
        }

        if (TargetManager.Instance.Type == TargetManager.PlayerType.Primary)
        {
            _deskzone = FindObjectOfType <Deskzone>();
        }

        if ((string)GetComponent <PhotonView>().Owner.CustomProperties["Class"] == TargetManager.PlayerType.Primary.ToString())
        {
            Type = TargetManager.PlayerType.Primary;
            if (TargetManager.Instance.Type == TargetManager.PlayerType.Primary)
            {
                _deskzone.Inside  += () => { ToggleVisibility(false); };
                _deskzone.Outside += () => { ToggleVisibility(true); };
            }
        }
        else
        {
            Type = TargetManager.PlayerType.Secondary;
            SecondaryAvatars.Add(this);

            if (TargetManager.Instance.Type == TargetManager.PlayerType.Primary)
            {
                var conePrefab = FindObjectOfType <WarpzoneManager>().ViewConePrefab;
                var cone       = Instantiate(conePrefab);
                cone.transform.parent                  = transform;
                cone.transform.localPosition           = conePrefab.transform.localPosition;
                cone.transform.localRotation           = conePrefab.transform.localRotation;
                cone.transform.localScale              = conePrefab.transform.localScale;
                cone.GetComponent <Renderer>().enabled = false;
            }
        }
        AvatarCreated?.Invoke(this);
    }
Esempio n. 8
0
        private void Start()
        {
            _targetManager = FindObjectOfType <ARTargetManager>();
            _virtualCity   = FindObjectOfType <VirtualCity>();

            Scaler = new GameObject("Scaler");
            Scaler.transform.parent        = transform;
            Scaler.transform.localPosition = MapOffset;
            Scaler.transform.localScale    = new Vector3(Scale, Scale, Scale);

            PlayerAvatar.AvatarCreated += (avatar) =>
            {
                if (avatar.GetComponent <PhotonView>().IsMine)
                {
                    return;
                }

                var dummy = Instantiate(_targetManager.AvatarPrefab, Scaler.transform);
                Destroy(dummy.GetComponent <AugmentixTransformView>());
                Destroy(dummy.GetComponent <PlayerAvatar>());
                Destroy(dummy.GetComponent <PhotonView>());
                var dummyComp = dummy.gameObject.AddComponent <MapTargetDummy>();
                dummyComp.Target = avatar;
                Dummies.Add(dummyComp);
                dummy.transform.localPosition =
                    _virtualCity.transform.InverseTransformPoint(avatar.transform.position);
                dummy.transform.localRotation =
                    Quaternion.Inverse(_virtualCity.transform.rotation) * avatar.transform.rotation;
                dummy.transform.localScale *= PlayerScale;
            };

            PlayerAvatar.AvatarLost += (avatar) =>
            {
                for (var i = 0; i < Dummies.Count; i++)
                {
                    var dummy = Dummies[i];
                    if (dummy.Target == avatar)
                    {
                        Dummies.Remove(dummy);
                        Destroy(dummy);
                        return;
                    }
                }
            };

            StartCoroutine(OnLateStart());

            IEnumerator OnLateStart()
            {
                yield return(new WaitForEndOfFrame());

                foreach (var warpzone in FindObjectsOfType <Warpzone>())
                {
                    var dummy     = Instantiate(_targetManager.WarpzoneDummyPrefab, Scaler.transform);
                    var dummyComp = dummy.gameObject.AddComponent <MapTargetDummy>();
                    dummyComp.Target = warpzone;
                    Dummies.Add(dummyComp);
                    dummy.transform.localPosition =
                        warpzone.LocalPosition;
                    dummy.transform.localRotation = Quaternion.identity;
                    dummy.transform.localScale   *= 1f / warpzone.Scale;
                }
            }
        }
Esempio n. 9
0
    public void Awake()
    {
        _button      = GetComponent <Button>();
        _player      = FindObjectOfType <OVRPlayerController>();
        _virtualCity = FindObjectOfType <VirtualCity>();
        OnRelease   += pos =>
        {
            if (!TeleportTarget.Equals(Vector3.zero))
            {
                StartCoroutine(Teleport());
                IEnumerator Teleport()
                {
                    _player.enabled = false;
                    yield return(null);

                    var target = _virtualCity.transform.TransformPoint(TeleportTarget);

                    target.y = _player.transform.position.y;
                    _player.transform.position = target;
                    yield return(null);

                    _player.enabled = true;
                }
            }
        };

        if (_button != null)
        {
            OnRelease += pos =>
            {
                var colors = _button.colors;
                var normal = colors.normalColor;
                colors.normalColor   = colors.selectedColor;
                colors.selectedColor = normal;
                _button.colors       = colors;
            };

            OnPress += pos =>
            {
                var colors = _button.colors;
                var normal = colors.normalColor;
                colors.normalColor   = colors.selectedColor;
                colors.selectedColor = normal;
                _button.colors       = colors;
            };

            OnHoverStart += () =>
            {
                var colors = _button.colors;
                var normal = colors.normalColor;
                colors.normalColor      = colors.highlightedColor;
                colors.highlightedColor = normal;
                _button.colors          = colors;
            };

            OnHoverEnd += () =>
            {
                var colors = _button.colors;
                var normal = colors.normalColor;
                colors.normalColor      = colors.highlightedColor;
                colors.highlightedColor = normal;
                _button.colors          = colors;
            };
        }
    }