unity從指定節(jié)點(diǎn)開始遍歷該節(jié)點(diǎn)下的所有子節(jié)點(diǎn),并保存到list中
從指定節(jié)點(diǎn)開始遍歷該節(jié)點(diǎn)下的所有子節(jié)點(diǎn),并保存到list中
List<GameObject> GetChildObjects(GameObject parent)
{
List<GameObject> childList = new List<GameObject>();
for (int i = 0; i < parent.transform.childCount; i++)
{
childList.Add(parent.transform.GetChild(i).gameObject);
if (parent.transform.GetChild(i).childCount > 0)
{
childList.AddRange(GetChildObjects(parent.transform.GetChild(i).gameObject));
}
}
return childList;
}
通過一個(gè)點(diǎn)坐標(biāo),獲取最靠近的那個(gè)對(duì)象
GameObject GetNearestObject(Vector3 point)
{
GameObject nearestObject = null;
float nearestDistance = Mathf.Infinity;
foreach(GameObject obj in allObjects)
{
float distance = Vector3.Distance(obj.transform.position, point);
if(distance < nearestDistance)
{
nearestDistance = distance;
nearestObject = obj;
}
}
return nearestObject;
}
其中,allObjects是指場景中的所有對(duì)象的列表。