Files
2025TapTapGameJam/Assets/Script/Gameplay/Global/TimePauseManager.cs

52 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using System;
using Core;
namespace Script.Gameplay.Global
{
/// <summary>
/// 全局时间暂停管理器。
/// 单例,挂载到场景里任意常驻 GameObject如 Managers
/// </summary>
public class TimePauseManager : MonoSingleton<TimePauseManager>
{
/// <summary> 当前是否处于暂停状态 </summary>
public bool IsPaused { get; private set; }
/// <summary> 暂停/恢复时触发,参数 true=暂停false=恢复 </summary>
public event Action<bool> OnPauseStateChanged;
[Header("调试按钮")]
[SerializeField] private bool _pauseToggle;
private void OnValidate()
{
// Inspector 里打钩立即生效(仅 Editor
SetPaused(_pauseToggle);
}
/// <summary>
/// 外部调用:设置暂停状态
/// </summary>
public void SetPaused(bool pause)
{
if (IsPaused == pause) return;
IsPaused = pause;
Time.timeScale = pause ? 0f : 1f;
OnPauseStateChanged?.Invoke(pause);
}
/// <summary>
/// 快捷暂停
/// </summary>
public static void Pause() => Instance.SetPaused(true);
/// <summary>
/// 快捷恢复
/// </summary>
public static void Resume() => Instance.SetPaused(false);
}
}