unity editor 查找avater内所有的骨骼bones节点
如下: 直接读取asset资源,并且序列化获取m_TOS属性:
1 private void SetPathInfo() 2 { 3 if (avatar == null) return; 4 allBonePaths.Clear(); 5 SerializedObject serializedObject = new SerializedObject(avatar); 6 var property = serializedObject.FindProperty("m_TOS"); 7 for (int i = 0; i < property.arraySize; i++) 8 { 9 var bondPath = property.GetArrayElementAtIndex(i).FindPropertyRelative("second").stringValue; 10 allBonePaths.Add(bondPath); 11 } 12 }
如果只是针对Human类型,可以使用:
Animator:GetBoneTransform(HumanBodyBones humanBoneId)