順番

- EditorApplication.playModeStateChanged の PlayModeStateChange.ExitingPlayMode
- MonoBehaviour.OnApplicationQuit
- Application.quitting
- MonoBehaviour.OnDestroy
- EditorApplication.playModeStateChanged の PlayModeStateChange.EnteredEditMode
検証用スクリプト
using UnityEngine; public class Example : MonoBehaviour { private void Awake() { Application.quitting += () => Debug.Log( "quitting" ); } private void OnApplicationQuit() { Debug.Log( "OnApplicationQuit" ); } private void OnDestroy() { Debug.Log( "OnDestroy" ); } #if UNITY_EDITOR [RuntimeInitializeOnLoadMethod( RuntimeInitializeLoadType.BeforeSceneLoad )] private static void RuntimeInitializeOnLoadMethod() { UnityEditor.EditorApplication.playModeStateChanged += OnChanged; } private static void OnChanged( UnityEditor.PlayModeStateChange change ) { if ( change == UnityEditor.PlayModeStateChange.ExitingPlayMode ) { Debug.Log( "ExitingPlayMode" ); } if ( change == UnityEditor.PlayModeStateChange.EnteredEditMode ) { Debug.Log( "EnteredEditMode" ); } } #endif }