private void ObjectHit(Collider colliderHit) { // We will let this grabber know we have remote objects available if (ParentGrabber == null) { return; } // Did our last item change? if (_lastColliderHit != colliderHit) { RemovePreviousHitObject(); } _lastColliderHit = colliderHit; if (_lastColliderHit.gameObject.TryGetComponent(out Grabbable grabObject)) { ParentGrabber.AddValidRemoteGrabbable(_lastColliderHit, grabObject); return; } // Check for Grabbable Child Object Last if (_lastColliderHit.gameObject.TryGetComponent(out GrabbableChild gc)) { ParentGrabber.AddValidRemoteGrabbable(_lastColliderHit, gc.ParentGrabbable); return; } }
void OnTriggerEnter(Collider other) { // We will let this grabber know we have remote objects available if (ParentGrabber == null) { return; } // Ignore Raycast Triggers if (other.gameObject.layer == 2) { return; } Grabbable grabObject = other.GetComponent <Grabbable>(); if (grabObject != null && ParentGrabber != null) { ParentGrabber.AddValidRemoteGrabbable(other, grabObject); return; } // Check for Grabbable Child Object Last GrabbableChild gc = other.GetComponent <GrabbableChild>(); if (gc != null && ParentGrabber != null) { ParentGrabber.AddValidRemoteGrabbable(other, gc.ParentGrabbable); return; } }