【Unity2D】制作暂停菜单PauseMenu

学习目标:

上一篇文章:

优快云icon-default.png?t=N7T8https://mp.youkuaiyun.com/mp_blog/creation/editor/122917227

参考视频:【Unity 2D游戏开发教程】第37课 如何在Unity中实现游戏暂停菜单 Pause Menu_哔哩哔哩_bilibili【Unity 2D游戏开发教程】第37课 如何在Unity中实现游戏暂停菜单 Pause Menu游戏开发交流群:45855966 / 像素艺术交流群:977805082课程代码: https://github.com/zs8861/2D-Platformicon-default.png?t=N7T8https://www.bilibili.com/video/BV1cz411i7cy


学习内容:

涉及到按钮点击事件,以及游戏暂停,先在Canvas上创建一个Panel,添加图片Sprite并调整透明度,再添加三个按钮给它,然后再Canvas创建脚本就叫pausemenu

内容如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class PauseMenu : MonoBehaviour
{
    public static bool isPause = false;
    public GameObject pauseMenuUI;
    public GameObject settingMenuUI;
    public Image settingImage;
    private Color originColor;
    void Start()
    {
        originColor = settingImage.color;
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (isPause)
            {
                Resume();
            }
            else
            {
                Pause();
            }
        }
    }
    public void Resume()
    {
        pauseMenuUI.SetActive(false);
        Time.timeScale = 1.0f;
        isPause = false;
    }
    public void MainMenu()
    {
        isPause = false;
        Time.timeScale = 1.0f;
        SceneManager.LoadScene("MainMenu");
    }
    public void Pause()
    {
        pauseMenuUI.SetActive(true);
        Time.timeScale = 0.0f;
        isPause = true;
    }
    public void Setting()
    {
        if (isPause)
        {
            pauseMenuUI.SetActive(false);
            settingMenuUI.SetActive(true);
            isPause = false;
            Time.timeScale = 0.0f;
            settingImage.enabled = true;
        }
    }
}

 

Time.timeScale是用于暂停或开始游戏时间,isPause用于判断游戏是否暂停

然后依次添加点击事件,看过我上一篇文章的应该都懂。

然后我们要在开始先把PauseMenu调成false非激活状态。

因为我还不会做Setting,所以我做了个提示告诉大伙我还不会做。


学习产出:

以下是游戏效果

Unity2D游戏中,弹出UI通常用于显示暂停菜单、得分信息、游戏结束画面等。以下是一个简单的步骤指南,帮助你在Unity2D游戏中实现屏幕弹出的UI: 1. **创建UI元素**: - 在Unity编辑器中,右键点击`Hierarchy`窗口,选择`UI > Canvas`来创建一个新的Canvas。 - 在Canvas下创建一个新的Panel,作为弹出UI的背景。右键点击Canvas,选择`UI > Panel`。 - 你可以调整Panel的大小和位置,并设置其颜色和不透明度,以便在游戏暂停时覆盖整个屏幕。 2. **添加UI组件**: - 在Panel下添加你需要的UI组件,例如按钮、文本等。右键点击Panel,选择`UI > Button`或`UI > Text`。 - 设置按钮的文本和功能,例如“继续游戏”、“退出游戏”等。 3. **编写脚本控制UI显示**: - 创建一个新的C#脚本,例如`PauseMenu.cs`,并将其附加到一个空的GameObject上。 - 在脚本中,添加以下代码来控制UI的显示和隐藏: ```csharp using UnityEngine; public class PauseMenu : MonoBehaviour { public GameObject pauseMenuUI; private bool isPaused = false; void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { if (isPaused) { Resume(); } else { Pause(); } } } public void Resume() { pauseMenuUI.SetActive(false); Time.timeScale = 1f; isPaused = false; } public void Pause() { pauseMenuUI.SetActive(true); Time.timeScale = 0f; isPaused = true; } public void QuitGame() { Application.Quit(); } } ``` 4. **配置脚本**: - 在Unity编辑器中,将`PauseMenu`脚本拖动到一个空的GameObject上。 - 在脚本的`pauseMenuUI`字段中,拖动你创建的Panel。 5. **测试**: - 运行游戏,按下`Esc`键,你应该能看到弹出UI。 - 点击“继续游戏”按钮,游戏应该会继续。 - 点击“退出游戏”按钮,游戏应该会退出。 通过以上步骤,你可以在Unity2D游戏中实现一个简单的屏幕弹出UI。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值