public static void SmartDestroy(UnityEngine.Object obj) { if (obj.IsNullOrDestroyed()) { return; } if (UnityEngine.Application.isPlaying) { //UnityEngine.Object.Destroy(obj); if (obj is UnityEngine.GameObject) { (obj as UnityEngine.GameObject).Kill(); } else if (obj is UnityEngine.Transform) { (obj as UnityEngine.Transform).gameObject.Kill(); } else { UnityEngine.Object.Destroy(obj); } } else { UnityEngine.Object.DestroyImmediate(obj); } }