Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 找不到活动的游戏对象_Unity3d - Fatal编程技术网

Unity3d 找不到活动的游戏对象

Unity3d 找不到活动的游戏对象,unity3d,Unity3d,如附件中所示,我有一个活动的游戏对象,其中有几个子对象,但下面的简单策略返回null,表明无法找到或访问它 我做错了什么?我只需要抓住这个关节,对它做一些修改 void Start() { GameObject brad = GameObject.Find("Brad"); GameObject hip = brad.transform.Find("Brad/ChrBrad/CharacterRoot/JtRoot/JtPelvis").gameObject; } 起初,我只使

如附件中所示,我有一个活动的游戏对象,其中有几个子对象,但下面的简单策略返回null,表明无法找到或访问它

我做错了什么?我只需要抓住这个关节,对它做一些修改

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;

非常感谢!