Files
Vision/Assets/Scripts/UI/PauseButton.cs
T

35 lines
1.1 KiB
C#

using UnityEngine;
/// <summary>
/// 暂停按钮。点击后在指定父节点下实例化暂停菜单预制体。
/// 菜单预制体、父节点都在 Inspector 里指定,代码不查找节点。
/// </summary>
[DisallowMultipleComponent]
public class PauseButton : MonoBehaviour
{
[Tooltip("点击后要显示的暂停菜单预制体")]
[SerializeField] private GameObject pauseMenuPrefab;
[Tooltip("菜单生成到哪个父节点下;留空则用本按钮的父节点(一般是 Canvas)")]
[SerializeField] private Transform menuParent;
private GameObject _instance;
public void OnPauseClicked()
{
if (pauseMenuPrefab == null)
{
Debug.LogError("[PauseButton] 没有指定暂停菜单预制体(pauseMenuPrefab)。", this);
return;
}
if (_instance != null) // 菜单已经开着,不重复生成
return;
Transform parent = menuParent != null ? menuParent : transform.parent;
_instance = Instantiate(pauseMenuPrefab, parent);
Time.timeScale = 0f; // 暂停游戏;不需要真暂停就删掉这一行
}
}