示例#1
0
    private void GetHandyFingerReferences()
    {
        _wrist = transform.Find("Wrist").GetComponent <HandyGripBone>();
        _palm  = transform.Find("Palm").GetComponent <HandyGripBone>();

        _thumb = new HandyGripThumb(transform.Find("Thumb").GetComponent <HandyGripThumbTip>());

        var thumbDist = transform.Find("Thumb").transform.Find("ThumbDistal");

        _thumb.SetBone(BoneType.Distal, thumbDist.GetComponent <HandyGripBone>());
        var thumbProx = thumbDist.transform.Find("ThumbProximal");

        _thumb.SetBone(BoneType.Proximal, thumbProx.GetComponent <HandyGripBone>());
        _thumb.SetBone(BoneType.Metacarpal, thumbProx.transform.Find("ThumbMetacarpal").GetComponent <HandyGripBone>());
        _thumb.SetActive(true);


        string[] fingerTransforms = { "Index", "Middle", "Ring", "Pinky" };

        for (int i = 1; i <= fingerCount; i++)
        {
            _fingers.Insert(i - 1, new HandyGripFinger(transform.Find(fingerTransforms[i - 1]).GetComponent <HandyGripFingerTip>(), (FingerType)i - 1));
            var distal = transform.Find(fingerTransforms[i - 1]).transform.Find(fingerTransforms[i - 1] + "Distal");
            _fingers[i - 1].SetBone(BoneType.Distal, distal.GetComponent <HandyGripBone>());
            var proximal = distal.transform.Find(fingerTransforms[i - 1] + "Proximal");
            _fingers[i - 1].SetBone(BoneType.Proximal, proximal.GetComponent <HandyGripBone>());
            _fingers[i - 1].SetBone(BoneType.Metacarpal, proximal.transform.Find(fingerTransforms[i - 1] + "Metacarpal").GetComponent <HandyGripBone>());
            _fingers[i - 1].SetActive(true);
        }

        for (int i = 1; i <= _maximumFingers; i++)
        {
            var hgft = transform.Find(fingerTransforms[i - 1]).GetComponent <HandyGripFingerTip>();
            if (i < fingerCount)
            {
                _fingers.Insert(i - 1, new HandyGripFinger(transform.Find(fingerTransforms[i - 1]).GetComponent <HandyGripFingerTip>(), (FingerType)i - 1));
                var distal = transform.Find(fingerTransforms[i - 1]).transform.Find(fingerTransforms[i - 1] + "Distal");
                _fingers[i - 1].SetBone(BoneType.Distal, distal.GetComponent <HandyGripBone>());
                var proximal = distal.transform.Find(fingerTransforms[i - 1] + "Proximal");
                _fingers[i - 1].SetBone(BoneType.Proximal, proximal.GetComponent <HandyGripBone>());
                _fingers[i - 1].SetBone(BoneType.Metacarpal, proximal.transform.Find(fingerTransforms[i - 1] + "Metacarpal").GetComponent <HandyGripBone>());
                _fingers[i - 1].SetActive(true);
            }
            else
            {
                hgft.transform.position = startingNullTransform.position;
            }
        }
    }
示例#2
0
 public void SetBone(BoneType bt, HandyGripBone hgb)
 {
     _bones.Insert((int)bt, hgb);
 }