Files
butchers-games-test/Assets/Scripts/Toolkit/OHM/UnityToolkit/ComponentsUtils.cs
T
Boris Nikolaev 5f1e94b653 add project files
2026-08-14 01:58:31 +03:00

54 lines
1.2 KiB
C#

using UnityEngine;
namespace OHM.UnityToolkit
{
public static class ComponentsUtils
{
public static bool GetRequiredComponentInChildren<ComponentToFind>(Component parent, ref ComponentToFind componentToFind)
{
if (!IsNull(componentToFind))
{
return true;
}
componentToFind = parent.GetComponentInChildren<ComponentToFind>(true);
return !IsNull(componentToFind);
}
public static bool GetRequiredComponentInParent<ComponentToFind>(Component parent, ref ComponentToFind componentToFind)
{
if (!IsNull(componentToFind))
{
return true;
}
componentToFind = parent.GetComponentInParent<ComponentToFind>();
return !IsNull(componentToFind);
}
public static bool GetRequiredComponent<ComponentToFind>(Component parent, ref ComponentToFind componentToFind)
{
if (!IsNull(componentToFind))
{
return true;
}
componentToFind = parent.GetComponent<ComponentToFind>();
return !IsNull(componentToFind);
}
public static ComponentToFind GetRequiredComponent<ComponentToFind>(Component parent)
{
return parent.GetComponent<ComponentToFind>();
}
private static bool IsNull<T>(T value)
{
if (value == null)
{
return true;
}
return value is UnityEngine.Object obj && obj == null;
}
}
}