diff --git a/Runtime/Extension/UnityEngage.GameObject/UnityEngage.GameObjectExtension.cs b/Runtime/Extension/UnityEngage.GameObject/UnityEngage.GameObjectExtension.cs index d79cbce..495f9db 100644 --- a/Runtime/Extension/UnityEngage.GameObject/UnityEngage.GameObjectExtension.cs +++ b/Runtime/Extension/UnityEngage.GameObject/UnityEngage.GameObjectExtension.cs @@ -5,6 +5,20 @@ namespace UnityEngine { public static class UnityEngageGameObjectExtension { + public static void SafeDestroySelf( + this Object obj) + { + if (obj == null) return; + +#if UNITY_EDITOR + if (!Application.isPlaying) + Object.DestroyImmediate(obj); + else + Object.Destroy(obj); +#else + Object.Destroy(obj); +#endif + } private static readonly List s_CachedTransforms = new List(); /// @@ -85,4 +99,4 @@ namespace UnityEngine s_CachedTransforms.Clear(); } } -} \ No newline at end of file +}