目的:在一个游戏场景中,实现游戏的暂停功能。在暂停后,可选择回到游戏/重新开始。
步骤:
一.添加控件
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事件。
跑一把看看。如果有问题的记得喊我哇!