据我所知,要获得最高的父母是transform.root
。如果我想得到最底层的孩子并且条件是我不知道孩子的名字怎么样?我试过
for (int i=0; i<theParent.childCount; i++)
{
int bottommost=theParent.childCount-1;
Debug.Log(theParent.GetChild(bottommost).name);
}
但这不是我期望的结果,我只是得到了第一个孩子,但我想要最底层的一个。我的意思是顺便提一下最基本的孩子。是否有任何提示,以获得最底层的孩子?谢谢
答案 0 :(得分:5)
lastChild = transform.GetChild(transform.childCount - 1);
答案 1 :(得分:0)
首先,你需要定义什么是底层孩子,因为孩子的深度也取决于兄弟姐妹。
例如:
然后每个孩子都可以有自己的孩子
因此,在这种情况下,儿童的孩子处于同一水平。
也许你正在引用编辑器中看到的最底层? 在这种情况下,可以在nae中添加一些东西以便搜索它......
答案 2 :(得分:0)
在父变换下创建所有子项的列表。
List<GameObject> list = new List<GameObject>();
foreach(Transform t in transform)
{
list.Add(t.gameObject);
if(t.childCount > 0)
foreach(Transform c in t)
list.Add(c);
}
最后一个元素是最后一个孩子:
GameObject lastChild = list[list.Count-1];
答案 3 :(得分:0)
如果您想要子对象本身,而不仅仅是转换:
int lastChildIndex = parentObject.transform.childCount - 1;
lastChildObject = cardSlot.transform.GetChild(lastChildIndex).gameObject;