Unity HumanTrait.GetMuscleDefaultMax()按名称获取

本文关键字:获取 HumanTrait GetMuscleDefaultMax Unity | 更新日期: 2023-09-27 18:13:56

我正试图获得骨骼的肌肉最大,但我似乎无法访问它。我知道我想要哪块骨头,但我不知道如何访问它,除了循环遍历所有骨头的数组。

有没有一种方法可以获取肌肉信息?这行不通:

selected = Selection.activeGameObject.transform.root.gameObject;
Animator anim = selected.GetComponent<Animator>();
float indexMax = HumanTrait.GetMuscleDefaultMax(HumanBodyBones.LeftIndexProximal);

这给了我一个对象的变换,但这不是我要找的:

Transform index1 = anim.GetBoneTransform(HumanBodyBones.LeftIndexProximal);

在不遍历所有骨骼的情况下如何得到HumanTrait.GetMuscleDefaultMax ?

Unity HumanTrait.GetMuscleDefaultMax()按名称获取

这个方法似乎做的伎俩(BoneInfo类需要创建与公共属性):

BoneInfo GetBoneInfo(HumanBodyBones id) {
    int boneid = (int)id.GetHashCode();
    BoneInfo info = new BoneInfo();
    info.muscleMax = HumanTrait.GetMuscleDefaultMax(boneid);
    info.muscleMin = HumanTrait.GetMuscleDefaultMin(boneid);
    info.transform = anim.GetBoneTransform(id);
    return info;
}