private void OnTriggerEnter(Collider collider) { //Debug.Log("Trigger entered"); //pickup = collider.gameObject; interactableitem collidedItem = collider.GetComponent <interactableitem>(); if (collidedItem) { objectsHoveringOver.Add(collidedItem); } }
private void OnTriggerExit(Collider collider) { //Debug.Log("Trigger exit"); //pickup = null; interactableitem collidedItem = collider.GetComponent <interactableitem>(); if (collidedItem) { objectsHoveringOver.Remove(collidedItem); } }
// Update is called once per frame void Update() { if (controller == null) { Debug.Log("Controller not initialized"); return; } /* * if (controller.GetPressDown(gripButton)) * { * Debug.Log("Grip Button was just pressed."); * } * * if (controller.GetPressUp(gripButton)) * { * Debug.Log("Grip Button was just unpressed."); * } * * * if (controller.GetPressDown(triggerButton) && pickup != null) * { * //Debug.Log("Trigger Button was just pressed."); * pickup.transform.parent = this.transform; * pickup.GetComponent<Rigidbody>().useGravity = false; * } * * if (controller.GetPressUp(triggerButton) && pickup != null) * { * //Debug.Log("Trigger Button was just unpressed."); * pickup.transform.parent = null; * pickup.GetComponent<Rigidbody>().useGravity = true; * } */ if (controller.GetPressDown(triggerButton)) { closestItem = null; float minDistance = float.MaxValue; float distance; foreach (interactableitem item in objectsHoveringOver) { distance = (item.transform.position - transform.position).sqrMagnitude; if (distance < minDistance) { minDistance = distance; closestItem = item; } } interactingItem = closestItem; if (interactingItem) { if (interactingItem.IsInteracting()) { interactingItem.EndInteraction(this); } interactingItem.BeginInteraction(this); } } if (controller.GetPressUp(triggerButton) && interactingItem != null) { interactingItem.EndInteraction(this); } }