コード例 #1
0
 private void Start()
 {
     _fingerBones         = new List <UnityBone>(transform.gameObject.GetComponentsInChildren <UnityBone>());
     _fingerBonesRotation = new List <Quaternion>();
     _tip          = _fingerBones[3];
     _target       = GetTarget(GetComponentInParent <Transform>());
     _selectObject = GameObject.Find("Main Camera").GetComponent <SelectObject>();
     foreach (UnityBone bone in _fingerBones)
     {
         _fingerBonesRotation.Add(bone.transform.localRotation);
     }
 }
コード例 #2
0
        /// <summary>
        ///     Calculates the Slope for movement
        /// </summary>
        /// <param name="bone"></param>
        /// <returns>returns calculated slope</returns>
        private float CalculateSlope(UnityBone bone)
        {
            float deltaTheta = 0.1f;

            _target = GetTarget(_tip.transform);

            float distance1 = Vector3.Distance(GetPositionOfBone(_tip), _target);

            bone.transform.Rotate(Vector3.forward * deltaTheta);

            float distance2 = Vector3.Distance(GetPositionOfBone(_tip), _target);

            bone.transform.Rotate(Vector3.forward * -deltaTheta);
            return((distance2 - distance1) / deltaTheta);
        }
コード例 #3
0
 /// <summary>
 ///     Returns position of the provided UnityBone
 /// </summary>
 /// <param name="bone">UnityBone</param>
 /// <returns>returns Position of parameter bone</returns>
 private Vector3 GetPositionOfBone(UnityBone bone)
 {
     return(bone.transform.position);
 }