void OnTriggerExit(Collider collider) { collidedObject = null; var iobj = collider.GetComponent <IInteractableObject>(); if (iobj != null) { if (HandState != State.HOLDING) { if (_interactableObjects.Count > 0) { iobj.EndHighlight(); _interactableObjects.Remove(iobj); } if (_interactableObjects.Count > 0) { _interactableObjects[_interactableObjects.Count - 1].StartHighlight(); } else { HandState = State.EMPTY; // GestureState = Gesture.EMPTY; } } else // remove while holding { _interactableObjects.Remove(iobj); } UpdateHoverColor(); } collidedVertexHandle = null; collidedFaceHandle = null; }
void OnTriggerEnter(Collider collider) { collidedObject = collider.gameObject; var iobj = collider.GetComponent <IInteractableObject>(); var colliderGameObject = collider.gameObject; if (colliderGameObject.GetComponent <VertexHandleController>() != null) { collidedVertexHandle = colliderGameObject.GetComponent <VertexHandleController>(); } else if (colliderGameObject.GetComponent <FaceHandleController>() != null) { collidedFaceHandle = colliderGameObject.GetComponent <FaceHandleController>(); } if (HandState == State.EMPTY || HandState == State.TOUCHING) { if (iobj != null) { if (colliderGameObject.GetComponent <ExtrudableController>() != null) { _interactableObjects.Insert(0, iobj); } else { if (_interactableObjects.Count > 0) { _interactableObjects[_interactableObjects.Count - 1].EndHighlight(); } iobj.StartHighlight(); _interactableObjects.Add(iobj); } HandState = State.TOUCHING; UpdateHoverColor(); } } }