场景一:菜单界面
1. 创建菜单界面
在 Unity 中创建一个 UI 界面,包含两个按钮:开始游戏
和 结束游戏
。
- 创建 UI:
- 在 Unity 编辑器中,右键点击
Hierarchy
窗口,选择UI -> Canvas
,创建一个画布。 - 在画布下,右键点击,选择
UI -> Button
,创建两个按钮,分别命名为StartGameButton
和ExitGameButton
。 - 修改按钮的文本内容,分别为“开始游戏”和“结束游戏”。
- 在 Unity 编辑器中,右键点击
2. 创建按钮点击事件脚本
创建一个脚本 MenuManager.cs
,并将其附加到画布上。
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class MenuManager : MonoBehaviour
{
public Button startGameButton;
public Button exitGameButton;
void Start()
{
// 给按钮添加点击事件
startGameButton.onClick.AddListener(StartGame);
exitGameButton.onClick.AddListener(ExitGame);
}
void StartGame()
{
// 加载 City 场景
SceneManager.LoadScene("City");
}
void ExitGame()
{
// 退出游戏
Application.Quit();
}
}
- 说明:
SceneManager.LoadScene("City");
用于加载名为City
的场景。Application.Quit();
用于退出游戏。
3. 配置场景
在 Unity 中,确保你已经创建了两个场景:Menu
和 City
。
- 在
Build Settings
中(File -> Build Settings
),将这两个场景添加到构建列表中。 - 确保
Menu
场景是第一个加载的场景。
场景二:City 场景
1. 创建 City 场景
在 Unity 中创建一个新的场景,命名为 City
。
2. 创建退出确认弹窗
在 City
场景中,创建一个 UI 弹窗,用于提示用户是否退出游戏。
- 创建弹窗:
- 在
Hierarchy
窗口中,右键点击,选择UI -> Panel
,创建一个面板,命名为ExitConfirmationPanel
。 - 在面板中,添加两个按钮:
YesButton
和NoButton
,分别设置文本为“是”和“否”。 - 设置面板的初始状态为隐藏(例如,将面板的
active
属性设置为false
)。
- 在
3. 创建弹窗控制脚本
创建一个脚本 ExitConfirmationManager.cs
,并将其附加到 ExitConfirmationPanel
上。
using UnityEngine;
using UnityEngine.UI;
public class ExitConfirmationManager : MonoBehaviour
{
public Button yesButton;
public Button noButton;
void Start()
{
// 给按钮添加点击事件
yesButton.onClick.AddListener(ConfirmExit);
noButton.onClick.AddListener(CancelExit);
}
void ConfirmExit()
{
// 确认退出游戏
Application.Quit();
}
void CancelExit()
{
// 取消退出,隐藏弹窗
gameObject.SetActive(false);
}
}
4. 捕获 Esc 键并显示弹窗
在 City
场景中,创建一个脚本 CityManager.cs
,并将其附加到一个空的 GameObject 上。
using UnityEngine;
public class CityManager : MonoBehaviour
{
public GameObject exitConfirmationPanel;
void Update()
{
// 检测 Esc 键
if (Input.GetKeyDown(KeyCode.Escape))
{
// 显示退出确认弹窗
exitConfirmationPanel.SetActive(true);
}
}
}
- 说明:
Input.GetKeyDown(KeyCode.Escape)
用于检测用户是否按下了 Esc 键。exitConfirmationPanel.SetActive(true);
用于显示弹窗。
完整流程
-
启动游戏时加载 Menu 场景:
- 用户看到一个菜单界面,包含“开始游戏”和“结束游戏”按钮。
- 点击“开始游戏”按钮,跳转到
City
场景。 - 点击“结束游戏”按钮,直接退出游戏。
-
在 City 场景中:
- 用户按下 Esc 键,会弹出一个确认退出的弹窗。
- 点击“是”,退出游戏。
- 点击“否”,隐藏弹窗,继续游戏。