Unity3d 找不到活动的游戏对象
如附件中所示,我有一个活动的游戏对象,其中有几个子对象,但下面的简单策略返回null,表明无法找到或访问它 我做错了什么?我只需要抓住这个关节,对它做一些修改Unity3d 找不到活动的游戏对象,unity3d,Unity3d,如附件中所示,我有一个活动的游戏对象,其中有几个子对象,但下面的简单策略返回null,表明无法找到或访问它 我做错了什么?我只需要抓住这个关节,对它做一些修改 void Start() { GameObject brad = GameObject.Find("Brad"); GameObject hip = brad.transform.Find("Brad/ChrBrad/CharacterRoot/JtRoot/JtPelvis").gameObject; } 起初,我只使
void Start()
{
GameObject brad = GameObject.Find("Brad");
GameObject hip = brad.transform.Find("Brad/ChrBrad/CharacterRoot/JtRoot/JtPelvis").gameObject;
}
起初,我只使用GameObject hip=brad.transform.FindJtPelvis.GameObject;所以我认为这可能是问题所在,但即使指定了完整路径,它仍然是不可行的
1转换。查找不要与GameObject混淆。查找只搜索一个级别,不在孙子中,这就是brad.Transform.FindJtPelvis.GameObject不起作用的原因 2您可以通过完整路径找到骨盆,只需忽略Brad:
GameObject hip = brad.transform.Find("ChrBrad/CharacterRoot/JtRoot/JtPelvis").gameObject;
3或者,您也可以编写一些自定义搜索功能,例如:
Transform FindChildNamed(Transform t, string name) {
if (t.name == name) return t;
foreach (Transform t1 in t) {
return FindChildNamed(t1, name);
}
return null;
}
//....
GameObject hip = FindChildNamed(brad.transform, "JtPelvis").gameObject;
非常感谢!