void Update() { if (!laser.enabled) { return; } // Set laser tip position from hit. if (Physics.Raycast(transform.position, transform.forward, out RaycastHit hit)) { SetLaserTipLocalPosition(transform.InverseTransformPoint(hit.point)); } else { SetLaserTipLocalPosition(Vector3.forward * 5); } // Update our current button. VRSelectable newButton = hit.collider == null ? null : hit.collider.GetComponent <VRSelectable>(); if (newButton != currentButton) { UpdateCurrentButton(newButton); } }
void UpdateCurrentButton(VRSelectable newButton) { if (currentButton) { currentButton.OnHoverEnd(); } currentButton = newButton; if (currentButton) { currentButton.OnHoverStart(); } }