【游戏开发】Unity3D的场景切换(开始、游戏场景、退出游戏)

游戏中的开始界面到游戏界面的切换,以及游戏退出如何在Unity3D中实现?

基本资源

需要在Assets下建立两个场景(右键->Create->Scene)一个场景作为开始菜单,另一个场景作为游戏界面。
在开始场景中新建画布(Canvas),画布中新建两个按钮(Button)。一个按钮中文本为“开始游戏”,另一个为“退出游戏”。

脚本

Assets下新建脚本MainMenu,用来管理场景切换。
需要的两个命名空间分别为using UnityEngine;using UnityEngine.SceneManagement;。其中,using UnityEngine.SceneManagement;用来管理场景。
删除不必要的Start()和Update()函数,然后在MainMenu类中添加如下代码:

SceneManager
1
2
3
4
5
6
7
8
9
10
11
12
13
//用这个函数触发切换到场景列表中下一个场景
public void PlayGame()
{
//加载编号比当前场景大1的场景
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}

//用这个函数退出游戏
public void QuitGame()
{
Debug.Log("Quit!");
Application.Quit();
}

调整场景列表和按钮函数

现在基本的场景和脚本都准备完毕。剩下的操作为:

  1. 将MainMenu脚本拖拽至开始菜单场景的MainCamera上
  2. Unity中打开File->Build Settings,将游戏开始场景拖拽至Scenes In Build窗口,注意开始场景的编号应比游戏场景多1
  3. 给开始按钮添加函数PlayGame,给退出按钮添加QuitGame函数(在监视面板的Button中将MainCamera拖至On Click内,选择需要的函数)

完成,现在运行游戏后点击“开始游戏”,场景将切换至游戏场景。
想要从游戏界面回到菜单,则函数类似,只不过变成场景编号-1。
注意,Application.Quit()的效果只能在Build之后查看,Unity编辑器中没有效果(Unity编辑器中只有我们添加的控制台语句)。