ProjectSquareBall/Assets/Scripts/Utils/Extensions.cs
2024-10-13 16:13:44 +05:30

36 lines
860 B
C#

using UnityEngine;
public static class CustomExtensions{
public static void PurgeChildren(this Transform parent){
foreach(Transform child in parent.GetComponentsInChildren<Transform>()){
if(child == parent){continue;}
SmartDestroy(child.gameObject);
}
}
public static void PurgeChildrenEdit(this Transform parent){
for (int i = parent.transform.childCount; i > 0; --i)
GameObject.DestroyImmediate(parent.GetChild(0).gameObject);
}
public static void SmartDestroy(UnityEngine.Object obj)
{
if (obj == null)
{
return;
}
#if UNITY_EDITOR
if (!Application.isPlaying)
{
GameObject.DestroyImmediate(obj);
}
else
#endif
{
GameObject.Destroy(obj);
}
}
}