diff --git a/Assets/RuntimeDebugDraw.cs b/Assets/RuntimeDebugDraw.cs index 4fac8b8..bc13f16 100644 --- a/Assets/RuntimeDebugDraw.cs +++ b/Assets/RuntimeDebugDraw.cs @@ -390,6 +390,9 @@ private void Awake() { CheckInitialized(); +#if UNITY_EDITOR && UNITY_2017_4_OR_NEWER + UnityEditor.EditorApplication.playModeStateChanged += OnPlayModeStateChanged; +#endif return; } @@ -422,6 +425,9 @@ private void OnDestroy() _AlwaysBatch.Dispose(); _ZTestBatch.Dispose(); +#if UNITY_EDITOR && UNITY_2017_4_OR_NEWER + UnityEditor.EditorApplication.playModeStateChanged += OnPlayModeStateChanged; +#endif return; } @@ -433,6 +439,17 @@ private void Clear() return; } + +#if UNITY_EDITOR && UNITY_2017_4_OR_NEWER + private void OnPlayModeStateChanged(UnityEditor.PlayModeStateChange playMode) + { + if (playMode == UnityEditor.PlayModeStateChange.ExitingPlayMode) + { + // hack to avoid 'Can't destroy Transform component' error due to parent hide flags. + transform.parent = null; + } + } +#endif #endregion #region Draw Lines