通过transform.Find只能查询到子物体这一层,通过递归查找当前物体的所有子物体
/// <summary>
/// 递归查找物体
/// </summary>
/// <param name="target">是要查询的物体的transfrom</param>
/// <param name="name">要查询的子物体的名字</param>
/// <returns></returns>
public GameObject FindGameObjectByName(Transform target, string name)
{
Transform trans = target.Find(name);
if (trans != null)
{
return trans.gameObject;
}
for (int i = 0; i < target.childCount; i++)
{
GameObject obj = FindGameObjectByName(target.GetChild(i), name);//调用方法名进行递归
if (obj != null)
{
return obj.gameObject;
}
}
return null;//如果不存在返回空
}