Files
EndlessHostRoles/Modules/Extensions/ObjectHelper.cs
T
2026-09-17 18:40:21 +02:00

42 lines
1.1 KiB
C#

using UnityEngine;
namespace EHR;
public static class ObjectHelper
{
public static void DestroyTranslator(this GameObject obj)
{
if (!obj) return;
obj.ForEachChild(x => x.DestroyTranslator());
TextTranslatorTMP[] translator = obj.GetComponentsInChildren<TextTranslatorTMP>(true);
translator?.Do(Object.Destroy);
}
public static void DestroyTranslator(this MonoBehaviour obj)
{
obj?.gameObject.DestroyTranslator();
}
// From: Project Lotus - by Discussions
public static bool HasParentInHierarchy(this GameObject obj, string parentPath)
{
string[] pathParts = parentPath.Split('/');
int pathIndex = pathParts.Length - 1;
Transform current = obj.transform;
while (current)
{
if (current.name == pathParts[pathIndex])
{
pathIndex--;
if (pathIndex < 0) return true;
}
else pathIndex = pathParts.Length - 1;
current = current.parent;
}
return false;
}
}