コード例 #1
0
ファイル: OpenVRHmd.cs プロジェクト: lavrri/Cuba-Connection
        public override void UpdateComponent()
        {
            if (OpenVRDevice.status == Status.Unavailable)
            {
                status = Status.Unavailable;
            }

            if (OpenVRDevice.GetConfidence(trackerId) == 0)
            {
                status             = OpenVRDevice.IsPresent(trackerId) ? Status.Present : Status.Unavailable;
                positionConfidence = 0;
                rotationConfidence = 0;
                gameObject.SetActive(false);
                return;
            }

            status = Status.Tracking;
            Vector3    localSensorPosition = Target.ToVector3(OpenVRDevice.GetPosition(trackerId));
            Quaternion localSensorRotation = Target.ToQuaternion(OpenVRDevice.GetRotation(trackerId));

            transform.position = trackerTransform.TransformPoint(localSensorPosition);
            transform.rotation = trackerTransform.rotation * localSensorRotation;

            positionConfidence = OpenVRDevice.GetConfidence(trackerId);
            rotationConfidence = OpenVRDevice.GetConfidence(trackerId);
            gameObject.SetActive(true);

            FuseWithUnityCamera();
        }
コード例 #2
0
        public override void UpdateComponent()
        {
            if (OpenVRDevice.status == Status.Unavailable)
            {
                status = Status.Unavailable;
            }

            if (trackerId < 0)
            {
                FindOutermostController(isLeft);
            }

            if (OpenVRDevice.GetConfidence(trackerId) == 0)
            {
                status             = OpenVRDevice.IsPresent(trackerId) ? Status.Present : Status.Unavailable;
                positionConfidence = 0;
                rotationConfidence = 0;
                gameObject.SetActive(false);
                return;
            }

            status = Status.Tracking;
            Vector3    localSensorPosition = Target.ToVector3(OpenVRDevice.GetPosition(trackerId));
            Quaternion localSensorRotation = Target.ToQuaternion(OpenVRDevice.GetRotation(trackerId));

            transform.position = trackerTransform.TransformPoint(localSensorPosition);
            transform.rotation = trackerTransform.rotation * localSensorRotation;

            positionConfidence = OpenVRDevice.GetConfidence(trackerId);
            rotationConfidence = OpenVRDevice.GetConfidence(trackerId);
            gameObject.SetActive(true);

            Passer.VRControllerState_t controllerState = new Passer.VRControllerState_t();
            var  system = Passer.OpenVR.System;
            uint controllerStateSize = (uint)Marshal.SizeOf(typeof(Passer.VRControllerState_t));
            bool newControllerState  = system.GetControllerState((uint)trackerId, ref controllerState, controllerStateSize);

            if (system != null && newControllerState)
            {
                UpdateInput(controllerState);
            }

            Skeletal();
        }
コード例 #3
0
        public override bool IsPresent()
        {
            bool isPresent = OpenVRDevice.IsPresent(subTrackerId);

            return(isPresent);
        }