Пример #1
0
        private float GetGrabDistance()
        {
            if (skeletalControllerHand == null)
            {
                return(maxGraspDistance);
            }

            float grabDist = maxGraspDistance;

            if (isPinchGrip)
            {
                Vector3 indexTip = GetIndexFingertipPosition();
                Vector3 thumbTip = GetThumbtipPosition();

                grabDist = Vector3.Distance(indexTip, thumbTip) * 0.65f;
            }
            else
            {
                Vector3 middleTip = GetMiddleFingertipPosition();
                Vector3 indexTip  = GetIndexFingertipPosition();

                float middleDist = Vector3.Distance(middleTip, skeletalControllerHand.GetPalmPosition()) * 0.5f;
                float indexDist  = Vector3.Distance(indexTip, skeletalControllerHand.GetPalmPosition()) * 0.5f;

                grabDist = (middleDist + indexDist) * 0.5f;
            }

            return(Mathf.Clamp(grabDist, minGraspDistance, maxGraspDistance));
        }
 public override Vector3 GetGraspPoint()
 {
     return(skeletalControllerHand.GetPalmPosition());
 }