// Use this for initialization void Start() { // jointDOF = new Vector3[] { }; jointNames = new string[] { "Neck_Flexion", "Neck_LateralFlexion", "L_Shoulder_Flexion", "L_Shoulder_Abduction", "L_Shoulder_HorizontalAbduction", "L_Elbow_Flexion", "R_Shoulder_Flexion", "R_Shoulder_Abduction", "R_Shoulder_HorizontalAbduction", "R_Elbow_Flexion", "L_Hip_Flexion", "L_Hip_Abduction", "L_Hip_Rotation", "R_Hip_Flexion", "R_Hip_Abduction", "R_Hip_Rotation", "R_Knee_Flexion", "L_Knee_Flexion", "Spine_Flexion", "Spine_LateralFlexion", "Spine_Rotation" }; int numJoints; numJoints = jointNames.Length; jointAng = new float[numJoints]; jointAngMin = new float[numJoints]; jointAngMax = new float[numJoints]; bodyDict = new Dictionary <string, int>(); int ii = 0; //bodyDict maps jointDOFNames to index of JointAng foreach (string t in jointNames) { //print("bodyDict add:" + jointNames[ii]); bodyDict.Add(jointNames[ii], ii); ii++; } AvatarSkeleton.GetAvatarSkeleton(gameObject, ref avatarSkeleton); if (animatorComponent == null) { animatorComponent = gameObject.GetComponent <Animator>(); } numJoints = avatarSkeleton.boneIndexCount(); // print("nJ=" + numJoints); localAngles = new Vector3[numJoints]; // jointNames = new string[numJoints]; boneNames = new string[numJoints]; bonePos = new Vector3[numJoints]; bonePosMin = new Vector3[numJoints]; bonePosMax = new Vector3[numJoints]; for (int i = 0; i < numJoints; i++) { int boneIndex = i; string jointName = avatarSkeleton.boneIndex2Name(boneIndex); //print(" joint mecanim name=" + jointName); boneNames[i] = jointName; } resetMinMax = true; updateMinMax = true; //false; Update(); moving = false; initted = true; }