在场景之间切换
验证环境
- 窗户
-
- 视窗 11
- 统一编辑器
-
- 2020.3.25f1
- 输入系统包
-
- 1.2.0
此提示的先决条件
作为此提示描述的前提,已预先进行了以下设置。
了解如何在场景之间切换
场景是所谓的“场景”,但Unity按原样使用“场景”一词,所以我会用表达式场景来解释它。
场景经常在游戏中的场景之间切换。 例如,如果从开始菜单启动游戏并启动操作,则可以将其视为场景切换。 此外,在操作过程中打开菜单屏幕的操作也将是场景切换,具体取决于菜单表达式。
这种场景切换需要在 Unity 中实现,并且有很多方法可以做到这一点。 例如,游戏中应该只有一个“场景(在 Unity 中)”。 当游戏场景更改时,将丢弃上一场景中的所有对象,并为下一个场景生成必要的对象。 但是,虽然此方法的优点是只提供一个场景,但它的缺点是必须以编程方式管理对象转换。
在此技巧中,我想实现一种方法,即准备尽可能多的“场景”文件,并提前在场景中放置必要的对象以切换场景。 在实际场景之间切换非常容易,因为您所要做的就是在场景文件之间切换。
准备场景
首先,创建一个普通项目。 假设您已经准备好了输入系统包并配置了摄像机。
这次我们将准备两个场景文件,实现第一个场景中点击按钮,过渡到第二个场景的操作。
SampleScene
现有场景应命名为 ,因此请将其SampleScene1
更改为 。
接下来,右键单击项目的空白区域,然后从“创建”中选择“场景”。 您也可以从项目选项卡下方的 + 按钮添加它。
将添加一个新的场景文件,因此将其命名 SampleScene2
为 .
SampleScene1
双击以打开场景并放置对象,如下所示。
SampleScene2
单击该按钮时,可以过渡到 ,以便布局合适。
SampleScene2
双击以打开场景并放置对象,如下所示。
你放什么并不重要,因为你只想知道发生了什么变化。
创建场景后,从菜单中打开“文件>构建设置”。
放入构建中包含的 SampleScene2
场景。
添加构建设置后,请关闭它们,如下所示。
场景切换流程
场景切换是通过脚本完成的,所以请创建一个脚本。 名称是任意的,但在这种情况下 SceneChange
是.
脚本如下所示:
using UnityEngine;
using UnityEngine.SceneManagement; // 追加
public class SceneChange : MonoBehaviour
{
<summary>ボタンをクリックしたときに呼ばれます。</summary>
public void OnClick()
{
// 指定したシーンを読み込み他のシーンは削除します
SceneManager.LoadScene("SampleScene2", LoadSceneMode.Single);
}
}
内容非常简单 SceneManager.LoadScene
,可以通过调用方法在场景之间切换。
第一个参数是要切换到的场景的名称。
如果指定为 LoadSceneMode.Single
第二个参数,则在关闭当前场景时只能打开指定的场景。
还有一个参数叫做 Simply add LoadSceneMode.Additive
scene,但本文就不解释了。
保存脚本后,打开脚本并将其 SampleScene1
附加到 。 EventSystem
它可以是您附加到的任何对象。
将按钮的单击事件设置为OnClick
附加到的对象,以便可以调用该方法SceneChange
。
尝试运行游戏,看看点击按钮后场景是否发生变化。