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; } 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); m_it.SetPivotPositionVirtualWorld(MVRTools.FromUnity(m_CurrentManipulatedObject.GetComponent <Collider>().bounds.center)); // 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); } // Hide Wand m_VRMgr.ShowWandGeometry(false); }
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); } }
protected void Initialize() { GameObject vrSystemCenterNode = null; if (GameObject.Find("VRManager").GetComponent <VRManagerScript>().VRSystemCenterNode != null) { vrSystemCenterNode = GameObject.Find("VRManager").GetComponent <VRManagerScript>().VRSystemCenterNode; } else { vrNode3D vrSystemMVRNode = MiddleVR.VRDisplayMgr.GetNodeByTag(MiddleVR.VR_SYSTEM_CENTER_NODE_TAG); if (vrSystemMVRNode != null) { vrSystemCenterNode = GameObject.Find(vrSystemMVRNode.GetName()); } } if (vrSystemCenterNode == null) { return; } // If our navigation node has a parent, we want to move relatively to this vehicule if (vrSystemCenterNode.transform.parent != null) { m_NavRefNode = vrSystemCenterNode.transform.parent.gameObject; if (m_NavRefNode != null) { VRActor vrActorScript = m_NavRefNode.AddComponent <VRActor>(); m_NavRefVrNode = vrActorScript.GetMiddleVRNode(); m_it.SetNavigationReferentialNode(m_NavRefVrNode); } } m_Initialized = true; }