private void Grab(GameObject iGrabbedObject) { if (iGrabbedObject == null) { return; } // Initialize manipulated node m_CurrentManipulatedObject = iGrabbedObject; VRActor vrActorScript = m_CurrentManipulatedObject.GetComponent <VRActor>(); m_ObjectPreviousSyncDir = vrActorScript.SyncDirection; vrActorScript.SyncDirection = MVRNodesMapper.ENodesSyncDirection.MiddleVRToUnity; vrNode3D middleVRNode = vrActorScript.GetMiddleVRNode(); m_it.SetManipulatedNode(middleVRNode); // Save initial position m_ObjectInitialLocalPosition = m_CurrentManipulatedObject.transform.localPosition; m_ObjectInitialLocalRotation = m_CurrentManipulatedObject.transform.localRotation; // Deactivate selection during the manipulation vrInteraction selection = MiddleVR.VRInteractionMgr.GetActiveInteractionByTag("ContinuousSelection"); if (selection != null) { m_PausedSelection = selection; MiddleVR.VRInteractionMgr.Deactivate(m_PausedSelection); } }
private void Grab(GameObject iGrabbedObject) { if (iGrabbedObject == null) { return; } if (OnGrab != null) { OnGrab(this, e_GrabStatus.GRABBED); } // Initialize manipulated node m_CurrentManipulatedObject = iGrabbedObject; VRActor vrActorScript = m_CurrentManipulatedObject.GetComponent <VRActor>(); m_ObjectPreviousSyncDir = vrActorScript.SyncDirection; vrActorScript.SyncDirection = MVRNodesMapper.ENodesSyncDirection.BothDirections; vrNode3D middleVRNode = vrActorScript.GetMiddleVRNode(); m_it.SetManipulatedNode(middleVRNode); // Save initial position m_ManipulatedObjectInitialLocalPosition = m_CurrentManipulatedObject.transform.localPosition; m_ManipulatedObjectInitialLocalRotation = m_CurrentManipulatedObject.transform.localRotation; // Pause rigidbody acceleration Rigidbody manipulatedRigidbody = iGrabbedObject.GetComponent <Rigidbody>(); if (manipulatedRigidbody != null) { m_ManipulatedObjectInitialIsKinematic = manipulatedRigidbody.isKinematic; manipulatedRigidbody.isKinematic = true; } // Deactivate selection during the manipulation vrInteraction selection = MiddleVR.VRInteractionMgr.GetActiveInteractionByTag("ContinuousSelection"); if (selection != null) { m_PausedSelection = selection; MiddleVR.VRInteractionMgr.Deactivate(m_PausedSelection); } }
private void Grab(GameObject iGrabbedObject) { // Initialize manipulated node m_CurrentManipulatedObject = iGrabbedObject; m_it.SetManipulatedNode(AcquireGameObjectNode(m_CurrentManipulatedObject, "VRInteractionManipulationRayNode")); // Pause rigidbody acceleration Rigidbody manipulatedRigidbody = iGrabbedObject.GetComponent <Rigidbody>(); if (manipulatedRigidbody != null) { m_ManipulatedObjectInitialIsKinematic = manipulatedRigidbody.isKinematic; manipulatedRigidbody.isKinematic = true; } // Deactivate selection during the manipulation vrInteraction selection = MiddleVR.VRInteractionMgr.GetActiveInteractionByTag("ContinuousSelection"); if (selection != null) { m_PausedSelection = selection; MiddleVR.VRInteractionMgr.Deactivate(m_PausedSelection); } }