35 lines
1.1 KiB
C#
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; // 暂停游戏;不需要真暂停就删掉这一行
|
|
}
|
|
}
|