protected void DestroyGameObject() { if (_ownsGameObject && gameObject != null) { if (Application.isPlaying) GameObject.Destroy(gameObject); else GameObject.DestroyImmediate(gameObject); gameObject = null; cachedTransform = null; } }