#if UNITY_EDITOR
using System;
using UnityEditor;
using UnityEngine;
namespace FishNet.Editing
{
[InitializeOnLoad]
public class PlayModeTracker
{
static PlayModeTracker()
{
EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
}
~PlayModeTracker()
{
EditorApplication.playModeStateChanged -= OnPlayModeStateChanged;
}
///
/// DateTime when the editor last exited playmode.
///
private static DateTime _quitTime = DateTime.MaxValue;
///
/// True if the editor has exited playmode within past.
///
///
///
internal static bool QuitRecently(float past)
{
past *= 1000;
return ((DateTime.Now - _quitTime).TotalMilliseconds < past);
}
private static void OnPlayModeStateChanged(PlayModeStateChange stateChange)
{
switch (stateChange)
{
case (PlayModeStateChange.ExitingPlayMode):
_quitTime = DateTime.Now;
break;
}
}
}
}
#endif