Unity_Learn/Assets/Scripts/Utils/Util.cs
2025-09-04 16:57:16 +09:00

37 lines
1.1 KiB
C#

using UnityEngine;
using Object = UnityEngine.Object;
public class Util
{
// recursive : 자식의 자식의 자식까지 재귀적으로 찾을지 여부
public static T FindChild<T>(GameObject go, string name = null, bool recursive = false) where T : Object
{
if(go == null) return null;
// 재귀적으로 찾을것인가?
if (recursive)
{
foreach(T component in go.GetComponentsInChildren<T>())
{
if (string.IsNullOrEmpty(name) || component.name == name)
return component;
}
}
// 재귀적으로 찾지 않을것인가?
else
{
for (int i = 0; i < go.transform.childCount; i++)
{
Transform transform = go.transform.GetChild(i);
if (string.IsNullOrEmpty(name) || transform.name == name)
{
T component = transform.GetComponent<T>();
if (component != null) return component;
}
}
}
return null;
}
}