51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
#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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// DateTime when the editor last exited playmode.
|
|
/// </summary>
|
|
private static DateTime _quitTime = DateTime.MaxValue;
|
|
|
|
/// <summary>
|
|
/// True if the editor has exited playmode within past.
|
|
/// </summary>
|
|
/// <param name="past"></param>
|
|
/// <returns></returns>
|
|
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 |