예제 #1
0
    private void Awake()
    {
        meshRenderer = GetComponentInChildren <SkinnedMeshRenderer>();
        interactor   = GetComponent <XRDirectInteractor>();

        interactor.onHoverEnter.AddListener(Hide);
        interactor.onHoverExit.AddListener(Show);
    }
예제 #2
0
 // Start is called before the first frame update
 void Start()
 {
     controller  = GetComponent <XRController>();
     inputDevice = controller.inputDevice;
     if (interactor == null)
     {
         interactor = GetComponent <XRDirectInteractor>();
     }
 }
예제 #3
0
 public static void DropObjectNow(this XRDirectInteractor interactor)
 {
     if (interactor.selectTarget == null || !interactor.allowSelect)
     {
         return;
     }
     interactor.allowSelect = false;
     interactor.StartCoroutine(WaitForTwoFrames(() => interactor.allowSelect = true));
 }
        private void Start()
        {
            baseInteractor   = GetComponent <XRBaseInteractor>();
            directInteractor = GetComponent <XRDirectInteractor>();

            baseInteractor.onHoverEnter.AddListener(OnHoverEnterInteractable);
            baseInteractor.onHoverExit.AddListener(OnHoverExitInteractable);
            baseInteractor.onSelectEnter.AddListener(OnSelectEnterInteractable);
            baseInteractor.onSelectExit.AddListener(OnSelectExitInteractable);
        }
예제 #5
0
        internal static XRDirectInteractor CreateDirectInteractor()
        {
            GameObject interactorGO = new GameObject();

            CreateGOSphereCollider(interactorGO);
            XRDirectInteractor interactor = interactorGO.AddComponent <XRDirectInteractor>();
            XRController       controller = interactorGO.GetComponent <XRController>();

            controller.enableInputTracking = false;
            return(interactor);
        }
예제 #6
0
 internal static XRDirectInteractor CreateDirectInteractor()
 {
     GameObject interactorGO = new GameObject("Direct Interactor");
     CreateGOSphereCollider(interactorGO);
     XRController controller = interactorGO.AddComponent<XRController>();
     XRDirectInteractor interactor = interactorGO.AddComponent<XRDirectInteractor>();
     interactor.xrController = controller;
     controller.enableInputTracking = false;
     controller.enableInputActions = false;
     return interactor;
 }
예제 #7
0
        internal static XRDirectInteractor CreateDirectInteractorWithWrappedXRController()
        {
            GameObject interactorGO = new GameObject();

            CreateGOSphereCollider(interactorGO);
            XRControllerWrapper controllerWrapper = interactorGO.AddComponent <XRControllerWrapper>();
            XRDirectInteractor  interactor        = interactorGO.AddComponent <XRDirectInteractor>();

#if LIH_PRESENT
            TestPoseProvider tpp = interactorGO.AddComponent <TestPoseProvider>();
            controllerWrapper.poseProvider = tpp;
#endif
            return(interactor);
        }
 // Start is called before the first frame update
 void Start()
 {
     //DontDestroyOnLoad(gameObject);
     if (player == null)
     {
         player = GameObject.Find("XR Rig").GetComponent <Player>();
     }
     if (playerGO == null)
     {
         playerGO = GameObject.Find("XR Rig");
     }
     if (playerController == null)
     {
         playerController = GameObject.Find("XR Rig").GetComponent <CharacterController>();
     }
     meshRenderer = GetComponent <MeshRenderer>();
     interactor   = hand.GetComponent <XRDirectInteractor>();
     boxCollider  = GetComponent <BoxCollider>();
 }
예제 #9
0
 protected override void OnSelectEnter(XRBaseInteractor interactor)
 {
     if (interactor is XRDirectInteractor)
     {
         controllerPos    = interactor.gameObject.transform;
         initalInteractor = (XRDirectInteractor)interactor;
         if (interactor.GetComponent <XRController>().controllerNode == XRNode.LeftHand)
         {
             handPosition = leftHand;
         }
         else
         {
             handPosition = rightHand;
         }
         handPosition.parent   = null;
         handPosition.position = lockPosition.transform.position;
         selected = true;
     }
     base.OnSelectEnter(interactor);
 }
예제 #10
0
 private void Awake()
 {
     handPhysics = handObject.GetComponent <HandPhysics>();
     interactor  = GetComponent <XRDirectInteractor>();
 }
 void Start()
 {
     m_DirectInteractor = GetComponentInChildren <XRDirectInteractor>();
 }
예제 #12
0
 private void Awake()
 {
     physicsPoser = GetComponent <PhysicsPoser>();
     interactor   = GetComponent <XRDirectInteractor>();
 }
예제 #13
0
 private void Awake()
 {
     this.interactor   = GetComponent <XRDirectInteractor>();
     this.inputActions = new XRIDefaultInputActions();
     this.inputActions.Enable();
 }