Пример #1
0
        private void OnDisable()
        {
            foreach (GameObject placedObject in _placedObjects)
            {
                ProximityIndicator proximitySphere = placedObject.GetComponent(typeof(ProximityIndicator)) as ProximityIndicator;
                if (proximitySphere != null)
                {
                    proximitySphere.enabled = false;
                }
            }
            foreach (var sp in SpawnPointManager.Instance.spawnPoints)
            {
                sp.ShowPlacementIndicator(false);
            }

            GestureManager.OnGestureBegin -= HandleOnGestureBegin;
        }
Пример #2
0
        private void Update()
        {
            // Updates our list of placed objects intersected by the desired placement location, and notifies observers.
            Vector3 loc       = _placement.Position;
            int     prevCount = _intersectedObjects.Count;

            _intersectedObjects = GatherPlacedObjectsWithinRange(loc, _placementClearance);
            int currCount = _intersectedObjects.Count;

            if (prevCount == 0 && currCount > 0)
            {
                if (OnPlacedObjectsProximityEnter != null)
                {
                    OnPlacedObjectsProximityEnter();
                }
            }
            else if (currCount == 0 && prevCount > 0)
            {
                if (OnPlacedObjectsProximityExit != null)
                {
                    OnPlacedObjectsProximityExit();
                }
            }

            // Sets overlapped state to false on all objects.
            foreach (GameObject placedObject in _placedObjects)
            {
                ProximityIndicator proximitySphere = placedObject.GetComponent(typeof(ProximityIndicator)) as ProximityIndicator;
                if (proximitySphere != null && proximitySphere.enabled)
                {
                    proximitySphere.SetOverlapped(false);
                }
            }

            // Sets overlapped state to true for intersected objects.
            foreach (GameObject placedObject in _intersectedObjects)
            {
                ProximityIndicator proximitySphere = placedObject.GetComponent(typeof(ProximityIndicator)) as ProximityIndicator;
                if (proximitySphere != null && proximitySphere.enabled)
                {
                    proximitySphere.SetOverlapped(true);
                    proximitySphere.overlapperPosition = loc;
                }
            }
        }
Пример #3
0
        private void OnEnable()
        {
            _placement.volume          = _placementExtents;
            _placement.tilt            = _placementTiltOffset;
            _placement.allowHorizontal = true;
            _placement.allowVertical   = false;
            _placement.Place(Camera.main.transform, HandlePlacementConfirmed, IsPlacementValid);

            foreach (GameObject placedObject in _placedObjects)
            {
                ProximityIndicator proximitySphere = placedObject.GetComponent(typeof(ProximityIndicator)) as ProximityIndicator;
                if (proximitySphere != null)
                {
                    proximitySphere.enabled = true;
                    proximitySphere.SetRadius(_placementClearance);
                }
            }

            GestureManager.OnGestureBegin += HandleOnGestureBegin;
        }