From fa97542815bc229091557ba5468d16c8853c8f32 Mon Sep 17 00:00:00 2001 From: ALEXTANG <574809918@qq.com> Date: Thu, 16 Jun 2022 19:44:31 +0800 Subject: [PATCH] Update GameTime.cs --- Assets/TEngine/Runtime/Core/GameTime.cs | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Assets/TEngine/Runtime/Core/GameTime.cs b/Assets/TEngine/Runtime/Core/GameTime.cs index f7190a10..40b98b32 100644 --- a/Assets/TEngine/Runtime/Core/GameTime.cs +++ b/Assets/TEngine/Runtime/Core/GameTime.cs @@ -48,6 +48,8 @@ namespace TEngine public static float quickRealTime; public static long TimeStamp => System.DateTimeOffset.Now.ToUnixTimeMilliseconds(); private static long _lastFrameTimeStamp; + private static bool _isPause = false; + private static float _keepTimeScale = 1f; /// /// 从游戏启动到现在的真实时长(秒) @@ -69,5 +71,49 @@ namespace TEngine ServerTimeStamp = serverTime; } + + /// + /// 获取、设置TimeScale + /// + public static float TimeScale + { + get + { + return Time.timeScale; + } + set + { + if (!_isPause) + { + _keepTimeScale = Time.timeScale; + Time.timeScale = value; + } + } + } + + /// + /// 时间停止,所有基于DeltaTime更新的逻辑都会停滞 + /// + public static void Pause() + { + if (!_isPause) + { + _keepTimeScale = Time.timeScale; + Time.timeScale = 0f; + _isPause = true; + } + } + + /// + /// 时间恢复 + /// + public static void Resume() + { + if (_isPause) + { + Time.timeScale = _keepTimeScale; + _isPause = false; + } + } } } \ No newline at end of file