在场景之间切换

更新页 :
页面创建日期 :

验证环境

窗户
  • 视窗 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

尝试运行游戏,看看点击按钮后场景是否发生变化。