在 Unity 中创建暂停菜单

添加暂停菜单对于任何 Unity 游戏都至关重要,它可以为玩家提供喘息和访问选项的时间。本教程将指导您完成其创建过程,包括代码示例和说明。

1. 设计您的暂停菜单

  • 绘制您想要的布局,包括按钮(恢复、选项、退出)。
  • 考虑使用透明面板,以减少干扰感。

2. 创建画布

  • 在“层次结构”面板中,右键单击并选择 "UI -> Canvas"。
  • 将 "Render Mode" 设置为 "Screen Space - Overlay" 以便正确定位。

3. 构建菜单面板

  • 在画布下,右键单击并选择 "UI -> Panel"。
  • 根据您的设计调整面板的大小和位置。
  • 将其重命名为 "PauseMenu" 以更好地组织。

4. 添加按钮

  • 在 PauseMenu 面板中右键单击并选择 "UI -> Button."
  • 对您想要的每个按钮(恢复、选项、退出)重复此操作。
  • 适当地命名它们(例如,"ResumeButton")。
  • 自定义它们的文本、大小和位置。

5. 编写逻辑脚本

  • 创建 一个名为的新 C# 脚本 "PauseMenu.cs."
  • 脚本附加到层次结构中的 PauseMenu 对象。

6. 暂停功能

'PauseMenu.cs'

public class PauseMenu : MonoBehaviour
{
    public bool isPaused; // Flag to track pause state

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            // Toggle pause state on Escape key press
            isPaused = !isPaused;
            if (isPaused)
            {
                PauseGame();
            }
            else
            {
                ResumeGame();
            }
        }
    }

    void PauseGame()
    {
        // Set Time.timeScale to 0 to pause gameplay
        Time.timeScale = 0;
        // Make PauseMenu panel visible (activate its gameObject)
        PauseMenu.gameObject.SetActive(true);
    }

    void ResumeGame()
    {
        // Set Time.timeScale back to 1 to resume gameplay
        Time.timeScale = 1;
        // Hide PauseMenu panel (deactivate its gameObject)
        PauseMenu.gameObject.SetActive(false);
    }
}

7. 按钮交互

  • 在检查器窗口中,选择每个按钮。
  • 单击 "OnClick" 旁边的“+”并将 'PauseMenu' 脚本拖到该字段上。
  • 选择适当的功能(例如,为 ResumeButton 选择 ResumeGame)。

8. 额外的接触

  • 自定义按钮样式、添加声音效果或实施选项菜单。
  • 考虑使用 prefabs 来实现跨场景的可重用性。

结论

希望本指南能让您在 Unity 中构建工作暂停菜单方面取得先机。请记住通过添加更多功能并根据您的特定游戏需求进行定制来扩展此基础。