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; }
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; } } }
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; }