private static void onPlayModeStateChanged() { var changedState = QuickUnityEditorEventsWatcher.PlayModeState.None; switch (mCurState) { case QuickUnityEditorEventsWatcher.PlayModeState.Stopped: if (EditorApplication.isPlayingOrWillChangePlaymode) { if (EditorApplication.isPlaying) { changedState = QuickUnityEditorEventsWatcher.PlayModeState.Playing; } else { mIgnore = true; } } break; case QuickUnityEditorEventsWatcher.PlayModeState.Playing: if (EditorApplication.isPaused) { changedState = QuickUnityEditorEventsWatcher.PlayModeState.Paused; } else { changedState = QuickUnityEditorEventsWatcher.PlayModeState.Stopped; } break; case QuickUnityEditorEventsWatcher.PlayModeState.Paused: if (EditorApplication.isPlayingOrWillChangePlaymode) { changedState = QuickUnityEditorEventsWatcher.PlayModeState.Playing; } else { changedState = QuickUnityEditorEventsWatcher.PlayModeState.Stopped; } break; } if (mIgnore || changedState == QuickUnityEditorEventsWatcher.PlayModeState.None) { return; } foreach (QuickUnityEditorEventsWatcher w in QuickUnityEditorEventsWatcher.allWatchers) { if (w == null) { continue; } w.EditorApplication.InvokePlayModeStateChanged(changedState, w.EditorApplication.OnPlayModeStateChanged); } mCurState = changedState; mIgnore = false; }
private static void onPlayModeStateChanged(PlayModeStateChange playMode) { var changedState = QuickUnityEditorEventsWatcher.PlayModeState.None; switch (playMode) { case PlayModeStateChange.EnteredEditMode: changedState = QuickUnityEditorEventsWatcher.PlayModeState.Stopped; break; case PlayModeStateChange.ExitingEditMode: break; case PlayModeStateChange.EnteredPlayMode: changedState = QuickUnityEditorEventsWatcher.PlayModeState.Playing; break; case PlayModeStateChange.ExitingPlayMode: break; default: break; } //switch (mCurState) //{ // case QuickUnityEditorEventsWatcher.PlayModeState.Playing: // if (EditorApplication.isPaused) // { // changedState = QuickUnityEditorEventsWatcher.PlayModeState.Paused; // } // else // { // changedState = QuickUnityEditorEventsWatcher.PlayModeState.Stopped; // } // break; //} if (mIgnore || changedState == QuickUnityEditorEventsWatcher.PlayModeState.None) { return; } foreach (QuickUnityEditorEventsWatcher w in QuickUnityEditorEventsWatcher.allWatchers) { if (w == null) { continue; } w.EditorApplication.InvokePlayModeStateChanged(changedState, w.EditorApplication.OnPlayModeStateChanged); } mCurState = changedState; }
private static void OnPlayModeStateChanged(QuickUnityEditorEventsWatcher.PlayModeState arg0) { Debug.Log("Editor PlayModeState: {0}", arg0); }