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);
    }
Esempio n. 3
0
    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);
    }