场景系统入门 — MRTK2

何时使用场景系统

如果项目由单个场景组成,则可能不需要场景系统。 当以下一个或多个情况成立时,它最有用:

  • 项目有多个场景。
  • 你习惯使用单个场景加载,但不喜欢它破坏 MixedRealityToolkit 实例的方式。
  • 你需要一种简单的方式来额外加载多个场景以构建体验。
  • 你需要一种简单的方式来跟踪正在进行中的加载操作,或者一种简单的方法来控制同时加载多个场景的场景激活。
  • 你想要在所有场景中保持照明一致且可预测。

场景系统资源

默认情况下,场景系统使用一对场景对象(DefaultManagerScene 和 DefaultLighting 场景)。 如果找不到其中任一场景,则“场景系统配置文件检查器”将显示一条消息。

Default resources message

![注意]如果项目使用自定义管理器和照明场景,则可以安全地忽略此消息。

以下部分现在介绍如何根据导入混合现实工具包所使用的方法来解决此消息。

Unity 包管理器 (UPM)

在混合现实工具包 UPM 包中,场景系统资源打包为示例。 由于 UPM 包不可变,Unity 无法打开所需的场景文件,除非将其显式导入到项目中。

若要执行导入操作,请使用以下步骤:

  • 选择“窗口”>“包管理器”

  • 选择“混合现实工具包基础”

  • 在“示例”部分找到“场景系统资源”

    Import scene system resources

  • 选择导入

资产 (.unitypackage) 文件

如果 SceneSystemResources 文件夹已删除,或在导入过程中已取消选中,可以使用以下步骤恢复该文件夹:

  • 选择“资产”>“导入包”>“自定义包”

  • 打开“Microsoft.MixedReality.Toolkit.Foundation”

  • 确保已选择 Services/SceneSystem/SceneSystemResources 和所有子选项

    Reimport scene system resources

  • 选择导入

如何使用场景系统

编辑器设置

默认情况下,场景系统在 Unity 编辑器中强制执行多个行为。 如果你发现其中任何行为蹩脚,可以在场景系统配置文件的“编辑器设置”部分禁用。

  • Editor Manage Build Settings: 如果为 true,该服务将自动更新生成设置,确保添加所有管理器、照明和内容场景。 如果希望完全控制生成设置,请禁用此选项。

  • Editor Enforce Scene Order: 如果为 true,该服务将确保场景层次结构中首先显示管理器场景,后跟照明和内容场景。 如果希望完全控制场景层次结构,请禁用此选项。

  • Editor Manage Loaded Scenes: 如果为 true,该服务将确保始终加载管理器、内容和照明场景。 如果希望完全控制编辑器中加载的场景,请禁用。

  • Editor Enforce Lighting Scene Types: 如果为 true,该服务将确保在照明场景中只允许使用在 PermittedLightingSceneComponentTypes 中定义的照明相关组件。 如果希望完全控制照明场景的内容,请禁用。

Scene system editor settings