团结.是否有一种方法可以将List中的对象链接到另一个List中的特定动画 &g



我在unity中有两个列表,第一个是List<GameObject> objList,第二个是List<Animator> animList。所以我需要链接GameObject列表中的第一个对象和Animator列表中的第一个动画,第二个对象和第二个动画等等。我该怎么做呢?

第一个列表的GameObjects是相同的,一旦Animator组件附加?

在这种情况下,你实际上只需要animList,无论何时你访问一个项目,你已经有了Animator.gameObject引用。

var obj = animList[0].gameObject;

也可以用另一种方式,当然,如果没有缓存,成本会更高。

var anim = objList[0].GetComponent<Animator>();

在这里你可以更灵活地使用关系,例如使用GetComponentInChildren,如果你知道它不是在这个对象上,而是一个子对象。


否则我就会有一个类

[Serializable]
public class AnimatorObjectPair
{
public Animator animator;
public GameObject gameObject;
}

,然后只存储

列表
public List<AnimatorObjectPair> animatorObjectPairs;

并填充该列表,而不是单独的列表,因此您总是同时访问两个引用。

更简单的方法是创建一个具有这两个字段的类,并用这个自定义类创建一个列表。如果这不能发生,你没有"适当的内置"。除非你使用字典,否则你需要确保每次访问列表a中的第一个值时,你也会访问列表B中的第一个项