// Update is called once per frame void FixedUpdate() { if (controller == null) { //Debug.Log("Controller not initialized"); return; } if (controller.GetPressDown(triggerButton)) { float minDistance = float.MaxValue; float distance; foreach (InteractableItems item in objectsHoveringOver) { distance = (item.transform.position - transform.position).sqrMagnitude; if (distance < minDistance) { minDistance = distance; closestItem = item; } } interactingItem = closestItem; closestItem = null; if (interactingItem) { if (interactingItem.IsInteracting()) { interactingItem.EndInteraction(this); } interactingItem.BeginInteraction(this); } } if (controller.GetPressUp(triggerButton) && interactingItem != null) { interactingItem.EndInteraction(this); } }