Exemple #1
0
        public override void UpdateTracker()
        {
            if (!enabled || trackerTransform == null)
            {
                return;
            }

            if (UnityVRDevice.xrDevice != UnityVRDevice.XRDeviceType.WindowsMR)
            {
                status = Status.Unavailable;
                return;
            }

            status = Status.Present;

            WindowsMRDevice.Update();
            status = Status.Tracking;
        }
Exemple #2
0
        public override void StartTracker(HumanoidControl _humanoid)
        {
            humanoid = _humanoid;

            if (humanoid.headTarget.unityVRHead.enabled && UnityVRDevice.xrDevice == UnityVRDevice.XRDeviceType.WindowsMR)
            {
                enabled = true;
            }

            if (!enabled || UnityVRDevice.xrDevice != UnityVRDevice.XRDeviceType.WindowsMR)
            {
                return;
            }

            WindowsMRDevice.Start();

            AddTracker(humanoid, null);
        }
        public override void UpdateComponent()
        {
            WindowsMRDevice.SensorState controllerState = WindowsMRDevice.GetControllerState(isLeft);

            if (!controllerState.tracked)
            {
                status = Status.Present;
                return;
            }

            transform.position = trackerTransform.TransformPoint(controllerState.position);
            transform.rotation = trackerTransform.rotation * controllerState.rotation;

            positionConfidence = controllerState.positionConfidence;
            rotationConfidence = controllerState.rotationConfidence;

            status = Status.Tracking;
            gameObject.SetActive(true);

            UpdateInput();
        }
        public override void UpdateComponent()
        {
            WindowsMRDevice.SensorState hmdState = WindowsMRDevice.GetHmdState();

            if (!hmdState.tracked)
            {
                status = Status.Present;
                return;
            }

            transform.position = trackerTransform.TransformPoint(hmdState.position);
            transform.rotation = trackerTransform.rotation * hmdState.rotation;

            positionConfidence = hmdState.positionConfidence;
            rotationConfidence = hmdState.rotationConfidence;

            status = Status.Tracking;
            gameObject.SetActive(true);

            FuseWithUnityCamera();
        }