private void _SetManipulation(EManipulation iManpulation) { Manipulation = iManpulation; VRInteractionManipulationRay manipulationRay = m_Wand.GetComponent <VRInteractionManipulationRay>(); VRInteractionManipulationHomer manipulationHomer = m_Wand.GetComponent <VRInteractionManipulationHomer>(); if (manipulationRay == null || manipulationHomer == null) { MVRTools.Log(2, "[~] Some manipulation scripts are missing on the Wand."); return; } switch (Manipulation) { case EManipulation.None: MiddleVR.VRInteractionMgr.Deactivate(manipulationRay.GetInteraction()); MiddleVR.VRInteractionMgr.Deactivate(manipulationHomer.GetInteraction()); break; case EManipulation.Ray: MiddleVR.VRInteractionMgr.Activate(manipulationRay.GetInteraction()); break; case EManipulation.Homer: MiddleVR.VRInteractionMgr.Activate(manipulationHomer.GetInteraction()); break; default: break; } }
protected override void Start() { base.Start(); m_GrabEventSender = FindObjectOfType<VRInteractionManipulationRay>(); if (m_GrabEventSender != null) { m_GrabEventSender.OnGrab += OnGrab; } m_WandTransform = MVRCameraUtils.GetInstance.p_WandTransform; m_CollisionMask = LayerMask.GetMask("TangibleGlitch"); }
protected override void Start() { base.Start(); m_GrabEventSender = FindObjectOfType <VRInteractionManipulationRay>(); if (m_GrabEventSender != null) { m_GrabEventSender.OnGrab += OnGrab; } m_WandTransform = MVRCameraUtils.GetInstance.p_WandTransform; m_CollisionMask = LayerMask.GetMask("TangibleGlitch"); }
public void OnGrab(VRInteractionManipulationRay sender, VRInteractionManipulationRay.e_GrabStatus grabStatus) { switch (grabStatus) { case VRInteractionManipulationRay.e_GrabStatus.GRABBED: StartCoroutine("SyncPositionToWandTransform"); break; case VRInteractionManipulationRay.e_GrabStatus.UNGRABBED: StopCoroutine("SyncPositionToWandTransform"); break; default: return; } }