Muh*_*han 0 c# unity-game-engine
到目前为止,我已经尝试过这个来获取对象的所有子项,但它只带来两个子对象.不是孩子的全部孩子.我如何获得所有并循环获取特定的名称对象
Transform[] objChild = gameObject.transform.GetComponentsInChildren<Transform>();
for (var i = 0; i < objChild.Length; i++)
{
objWheel.Add(objChild[i].gameObject.transform.GetChild(i).gameObject);
objWheelAnimation.Add(objChild[i].gameObject.transform.GetChild(i).GetComponent<Animation>());
if (objChild[i].gameObject.name.Contains("Wheel Rotation"))
{
}
}
Run Code Online (Sandbox Code Playgroud)
你必须使用递归:
using System.Collections.Generic;
private List<GameObject> listOfChildren;
private void GetChildRecursive(GameObject obj){
if (null == obj)
return;
foreach (Transform child in obj.transform){
if (null == child)
continue;
//child.gameobject contains the current child you can do whatever you want like add it to an array
listOfChildren.Add(child.gameObject);
GetChildRecursive(child.gameObject);
}
}
Run Code Online (Sandbox Code Playgroud)
希望它能帮到你
如果您想获取父 GameObject 的每个孩子,那么这是最小且简单的代码片段。将此附加到父游戏对象。
foreach (Transform g in transform.GetComponentsInChildren<Transform>())
{
Debug.Log(g.name);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8676 次 |
| 最近记录: |