Unity实现暂停菜单

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38703170/article/details/80322561

目的:在一个游戏场景中,实现游戏的暂停功能。在暂停后,可选择回到游戏/重新开始。
步骤:
一.添加控件
1. 新建空的GameObject,放在Canves下。用来放暂停功能所需的UI控件。并将其重命名为ButtonPauseMenu。
这里写图片描述
先放一个整个完成后的目录结构:
这里写图片描述
2. 添加一个image,拖到ButtonPauseMenu下。当作背景。
这里写图片描述
按个人喜好酌情调整大小位置颜色等等。下面是我调完之后的:
这里写图片描述

3 添加两个Button,分别重命名为ButtonRestart(重新开始)和ButtonResume(回到游戏)。
分别将其text修改为“重新开始”“回到游戏”。拖到ButtonPauseMenu下,且在image后(否则会被遮挡)。
按个人喜好酌情调节其外观,且这俩Button的锚点设置为两侧中间,以保证画面缩放时按钮的大小及位置可以做出相应变化。
这里写图片描述

4 添加Button,重命名为”ButtonPause“,text为”暂停。将其锚点设置为右上角。按个人喜好酌情调整其位置及外观。
这里写图片描述
5. 将ButtonPauseMenu设置为不可见。
这里写图片描述
二.写脚本
1. 新建空的GameObject,重命名为GameControler。
2. 新建C# Script文件,重命名为ButtonPause。
脚本代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ButtonPause : MonoBehaviour {

    //the ButtonPauseMenu
    public GameObject ingameMenu;

    public void OnPause()//点击“暂停”时执行此方法
    {
        Time.timeScale = 0;
        ingameMenu.SetActive(true);
    }

    public void OnResume()//点击“回到游戏”时执行此方法
    {
        Time.timeScale = 1f;
        ingameMenu.SetActive(false);
    }

    public void OnRestart()//点击“重新开始”时执行此方法
    {
        //Loading Scene0
        UnityEngine.SceneManagement.SceneManager.LoadScene(0);
        Time.timeScale = 1f;
    }
}

3.将脚本拖到GameControler上,使脚本成为GameControler的一个组件。 并将ButtonPauseMenu拖到ingameMenu上。
这里写图片描述

4.找到“暂停”按钮的onclick组件,将OnPause方法付给click事件。将按图执行操作:
这里写图片描述
5.同样的,将OnResume方法赋给“回到游戏”的click事件;将OnRestart方法赋给“重新开始”的click事件。

跑一把看看。如果有问题的记得喊我哇!

猜你喜欢

转载自blog.csdn.net/weixin_38703170/article/details/80322561
今日推荐