private bool OnMVRNodeDestroy(vrEvent iBaseEvt) { vrObjectEvent e = vrObjectEvent.Cast(iBaseEvt); if (e != null) { if (e.ComesFrom(m_PhysicsConstraint)) { if (e.eventType == (int)VRObjectEventEnum.VRObjectEvent_Destroy) { // Killed in MiddleVR so delete it in C#. m_PhysicsConstraint.Dispose(); } } } return(true); }
private bool OnMVRNodeDestroy(vrEvent iBaseEvt) { vrObjectEvent e = vrObjectEvent.Cast(iBaseEvt); if (e != null) { if (e.ComesFrom(m_RigidBody)) { if (e.eventType == (int)VRObjectEventEnum.VRObjectEvent_Destroy) { // The physics rigid body was killed in MiddleVR so // stop to use it in C#. m_RigidBody = null; // And even stop to use this component. enabled = false; } } } return(true); }
private bool _OnNodeEvent(vrEvent iEvent) { if (!m_IsNodeGrabbed) { vrObjectEvent objectEvent = vrObjectEvent.Cast(iEvent); if (objectEvent != null && objectEvent.GetEventType() == (int)VRObjectEventEnum.VRObjectEvent_Destroy) { MVRNodesMapper nodesMapper = MVRNodesMapper.Instance; if (nodesMapper != null && m_SyncDirection != MVRNodesMapper.ENodesSyncDirection.NoSynchronization) { nodesMapper.RemoveMapping(gameObject, false); } SetSyncDirection(MVRNodesMapper.ENodesSyncDirection.NoSynchronization); m_Node = null; // Destroys the object later this frame, before rendering UnityEngine.Object.Destroy(gameObject); } } return(true); }