Unity3d 如何找到子游戏对象?
我想说一些像Unity3d 如何找到子游戏对象?,unity3d,gameobject,Unity3d,Gameobject,我想说一些像 Gameobject.find(child gameobject of specific parent Gameobject) 有人能帮我吗。 谢谢 游戏对象。查找将在场景中搜索游戏对象。要从父对象搜索游戏对象,请使用Transform 有两种方法: transform.Find(“childname”) transform.FindChild(“childname”) 第二个选项已弃用,但仍然可以使用,因此您最好使用第一个选项。修复Jay Kazama的答案。正确答案如下: t
Gameobject.find(child gameobject of specific parent Gameobject)
有人能帮我吗。
谢谢
游戏对象。查找将在场景中搜索游戏对象。要从父对象搜索游戏对象,请使用Transform
有两种方法:
transform.Find(“childname”)
transform.FindChild(“childname”)
第二个选项已弃用,但仍然可以使用,因此您最好使用第一个选项。修复Jay Kazama的答案。正确答案如下:
transform.Find(“childname”)
transform.FindChild(“childname”)
使用小t(属性转换,而不是类转换)。如果您要在层次结构中查找游戏对象,它必须如下所示:
transform.Find("head/eyes")
transform.FindChild("head/eyes")
对于上面说明答案为transform.FindChild(“childname”)
的答案,特此通知您transform.FindChild(“childname”)
已被弃用
使用此选项,将按预期工作
transform.Find("childName");
如果您想按名称查找游戏对象的子对象,请使用
GameObject head = HeadPanel; // just for reference
head.transorm.Find("childName").gameObject;
你可以这样做
GetChild(子成员索引)当我尝试此代码时,请查看此项。我发现了一个错误,如“无法将类型UnityEngine.Transform”转换为UnityEngine.GameObject”,这是因为Transform.find(“childname”)
返回一种转换类型。如果你想获得游戏对象,只需在末尾添加.gameobject:Transform.find(“childname”).gameobject
我对这个答案做了user3164248的更改(只是为了避免混淆)。我更改了Kazama的答案以包含这些修复。使用GetChild(索引)的坏处是如果更改对象的顺序,则会丢失对它们的引用谢谢!“Find()”调用为我返回NULL,我在Unity文档中看到,默认情况下它不会遍历层次结构(以获取子级)。使用正斜杠可以做到这一点(例如,“ParentName/ChildName/sundername”可以获得“sundername”)。