54 lines
1.3 KiB
C#
54 lines
1.3 KiB
C#
using UnityEngine;
|
|
|
|
public class Util
|
|
{
|
|
public static GameObject FindChild(GameObject go, string name = null, bool recursive = false)
|
|
{
|
|
Transform transform = FindChild<Transform>(go, name, recursive);
|
|
|
|
if (transform == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return transform.gameObject;
|
|
}
|
|
|
|
|
|
public static T FindChild<T>(GameObject go, string name = null, bool recursive = false) where T : UnityEngine.Object
|
|
{
|
|
if (go == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
if (recursive == false)
|
|
{
|
|
for (int i = 0; i < go.transform.childCount; i++)
|
|
{
|
|
Transform transform = go.transform.GetChild(0);
|
|
if (string.IsNullOrEmpty(name) || transform.name == name)
|
|
{
|
|
T component = transform.GetComponent<T>();
|
|
if (component != null)
|
|
{
|
|
return component;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (T component in go.GetComponentsInChildren<T>())
|
|
{
|
|
if (string.IsNullOrEmpty(name) || component.name == name)
|
|
{
|
|
return component;
|
|
}
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|