Ejemplo n.º 1
0
        async void Start()
        {
            _LeftHandOVRSkelton  = _LeftOVRHand.GetComponent <OVRSkeleton>();
            _RightHandOVRSkelton = _RightOVRHand.GetComponent <OVRSkeleton>();

#if UNITY_EDITOR
            _LeftHandOVRSkelton.ShouldUpdateBonePoses  = true;
            _RightHandOVRSkelton.ShouldUpdateBonePoses = true;
#endif
            await UniTask.WaitUntil(() => (_LeftHandOVRSkelton.IsInitialized));

            await UniTask.WaitUntil(() => (_RightHandOVRSkelton.IsInitialized));

            Initialize();
            SetTargetPoseHandler();

            if (_WristController == null)
            {
                _WristController = GetComponent <OculusWristController>();
            }
            _WristController._LeftOVRHand  = _LeftOVRHand;
            _WristController._RightOVRHand = _RightOVRHand;

            IsAvailable = true;
        }
Ejemplo n.º 2
0
        public void InitializeHand(OVRHand ovrHand, OculusXRSDKDeviceManagerProfile deviceManagerSettings)
        {
            settingsProfile = deviceManagerSettings;

            handRenderer = ovrHand.GetComponent <Renderer>();
            UpdateHandMaterial(settingsProfile.CustomHandMaterial);
            pinchStrengthProp = Shader.PropertyToID(settingsProfile.PinchStrengthMaterialProperty);
        }
Ejemplo n.º 3
0
        private void Awake()
        {
            controllerHand = GetComponent <SkeletalControllerHand>();
            handAnimator   = GetComponent <Animator>();

            hand     = controllerTransform.GetComponentInChildren <OVRHand>();
            skeleton = hand.GetComponent <OVRSkeleton>();

            GetControllerHashes();
        }
Ejemplo n.º 4
0
    // Start is called before the first frame update
    void Start()
    {
        l_hand   = GetComponent <OVRHand>();
        l_finger = GetComponent <OVRSkeleton>();
        r_finger = r_hand.GetComponent <OVRSkeleton>();
        r_isIndexFingerPinching = r_hand.GetFingerIsPinching(OVRHand.HandFinger.Index);
        l_isIndexFingerPinching = l_hand.GetFingerIsPinching(OVRHand.HandFinger.Index);

        initial_position = item.transform.position;
        inkRenderer      = ink.GetComponent <Renderer>();
    }
        // Start is called before the first frame update
        void Start()
        {
            skeleton = trackedHand.GetComponent <OVRSkeleton>();
            mr       = trackedHand.GetComponent <OVRMeshRenderer>();
            smr      = trackedHand.GetComponent <SkinnedMeshRenderer>();

            foreach (OVRBone bone in skeleton.Bones)
            {
                if (bone.Id == OVRSkeleton.BoneId.Hand_IndexTip)
                {
                    indexTipBone = bone;
                }
                if (bone.Id == OVRSkeleton.BoneId.Hand_MiddleTip)
                {
                    middleTipBone = bone;
                }
                if (bone.Id == OVRSkeleton.BoneId.Hand_RingTip)
                {
                    ringTipBone = bone;
                }
                if (bone.Id == OVRSkeleton.BoneId.Hand_PinkyTip)
                {
                    pinkyTipBone = bone;
                }
                if (bone.Id == OVRSkeleton.BoneId.Hand_ThumbTip)
                {
                    thumbTipBone = bone;
                }
                if (bone.Id == OVRSkeleton.BoneId.Hand_Start)
                {
                    handBone = bone;
                }
            }

            for (int i = 0; i < smoothSteps; i++)
            {
                lastPositions.Add(IndexTipObject.transform.position);
            }
        }
Ejemplo n.º 6
0
        protected override void Awake()
        {
            base.Awake();

            hand     = controllerTransform.GetComponentInChildren <OVRHand>();
            skeleton = hand.GetComponent <OVRSkeleton>();

            GetControllerHashes();

            fingerBasis = new BoneBasis()
            {
                Forward = fingerForward, Up = fingerUp
            };
        }
Ejemplo n.º 7
0
        void Awake()
        {
            leftSkele  = LeftHand.GetComponent <OVRSkeleton>();
            rightSkele = RightHand.GetComponent <OVRSkeleton>();

            // This fixes a Unity crash to desktop in Oculus 1.32 when using hand tracking on start in editor mode
            if (DisableHandTrackingInEditor && Application.isEditor && leftSkele != null)
            {
                leftSkele.enabled  = false;
                rightSkele.enabled = false;

                // See https://forum.unity.com/threads/released-vr-interaction-framework-for-oculus-quest.817614/reply?quote=5468730
                Debug.Log("Disabling Hand Tracking in Editor due to CTD bug in Oculus SDK");
            }
        }
Ejemplo n.º 8
0
        public OculusQuestHand(TrackingState trackingState, Handedness controllerHandedness, OVRHand ovrHand, Material handMaterial, IMixedRealityInputSource inputSource = null, MixedRealityInteractionMapping[] interactions = null)
            : base(trackingState, controllerHandedness, inputSource, interactions)
        {
            palmFilter.Reset();
            indexTipFilter.Reset();
            this.handMaterial = handMaterial;
            handRenderer      = ovrHand.GetComponent <Renderer>();

            if (!MRTKOculusConfig.Instance.UseCustomHandMaterial)
            {
                return;
            }

            handRenderer.sharedMaterial = handMaterial;
            if (MRTKOculusConfig.Instance.UpdateMaterialPinchStrengthValue)
            {
                pinchStrengthProp = Shader.PropertyToID(MRTKOculusConfig.Instance.PinchStrengthMaterialProperty);
            }
        }
Ejemplo n.º 9
0
    private void Start()
    {
        leftSkeleton = left.GetComponent <OVRSkeleton>();
        foreach (OVRBone bone in leftSkeleton.Bones)
        {
            if (bone.Id == OVRSkeleton.BoneId.Hand_IndexTip)
            {
                leftIndexTip = bone;
            }
        }


        rightSkeleton = right.GetComponent <OVRSkeleton>();
        foreach (OVRBone bone in rightSkeleton.Bones)
        {
            if (bone.Id == OVRSkeleton.BoneId.Hand_IndexTip)
            {
                rightIndexTip = bone;
            }
        }
    }
        void Initialize()
        {
            var skeletonBuilder = new SkeletonBuilder(this.transform);

            skeletonBuilder.AddBasicSkeleton(new SkeletonBuilderParams());

            var leftHandRotation = Quaternion.Euler(0, 0, 180);

            skeletonBuilder.UpdateRotation(HumanBodyBones.LeftHand, leftHandRotation);

            var rightHandRotation = Quaternion.Euler(0, 180, 0);

            skeletonBuilder.UpdateRotation(HumanBodyBones.RightHand, rightHandRotation);

            _LeftHandOVRSkelton = _LeftOVRHand.GetComponent <OVRSkeleton>();
            AddHandSkeletonBones(skeletonBuilder, true);

            _RightHandOVRSkelton = _RightOVRHand.GetComponent <OVRSkeleton>();
            AddHandSkeletonBones(skeletonBuilder, false);

            _Skeleton = skeletonBuilder.Skeleton;

            var avatar = AvatarBuilder.BuildHumanAvatar(this.gameObject, skeletonBuilder.GetHumanDescription());

            _SrcPoseHandler = new HumanPoseHandler(avatar, this.transform);

            if (_VisualizeBones && _XYZAxisPrefab != null)
            {
                foreach (var bone in skeletonBuilder.Skeleton.Values)
                {
                    GameObject axis = GameObject.Instantiate(_XYZAxisPrefab, Vector3.zero, Quaternion.identity, bone);
                    axis.transform.localScale    = new Vector3(_AxisObjectScale, _AxisObjectScale, _AxisObjectScale);
                    axis.transform.localPosition = Vector3.zero;
                    axis.transform.localRotation = Quaternion.identity;
                }
            }
        }
Ejemplo n.º 11
0
 public void InitializeHand(OVRHand ovrHand, Material handMaterial)
 {
     handRenderer = ovrHand.GetComponent <Renderer>();
     UpdateHandMaterial(handMaterial);
 }
Ejemplo n.º 12
0
 void Awake()
 {
     leftSkele  = LeftHand.GetComponent <OVRSkeleton>();
     rightSkele = RightHand.GetComponent <OVRSkeleton>();
 }
Ejemplo n.º 13
0
 void Awake()
 {
     skeleton = Hand.GetComponent <OVRSkeleton>();
 }
Ejemplo n.º 14
0
 private void Start()
 {
     rightGrabber = m_RightHand.GetComponent <PinchGrabber>();
     leftGrabber  = m_LeftHand.GetComponent <PinchGrabber>();
 }