示例#1
0
        protected virtual void FindFingers(ManusRigger rigger)
        {
            string[] fingers =
            {
                "thumb_0",
                "index_0",
                "middle_0",
                "ring_0",
                "pinky_0"
            };

            // Associate the game transforms with the skeletal model.
            FingerTransforms = new Transform[5][];
            for (var i = 0; i < 5; i++)
            {
                FingerTransforms[i] = new Transform[5];
                for (var j = 1; j < 4; j++)
                {
                    //Get the cached transform from the manus rigger.
                    if (rigger)
                    {
                        FingerTransforms[i][j] = rigger.GetFingerTransform(DeviceType, (ApolloHandData.FingerName)i, (PhalangeType)j);
                    }

                    //Manually find the transform if rigger is null or the transform is still not assigned/
                    if (!FingerTransforms[i][j])
                    {
                        var postfix = DeviceType == device_type_t.GLOVE_LEFT ? "_l" : "_r";
                        var finger  = fingers[i] + j + postfix;
                        FingerTransforms[i][j] = transform.FindDeepChild(finger);
                    }
                }
            }
        }