包含此页的版本:
不含此页的版本:
在 Unity 实例化新的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表从模板中,创建一个场景模板管道脚本并将其连接到模板。每次从模板创建新场景时,Unity 也会创建管道脚本的新实例。
要将脚本连接到模板,请执行以下作:
您还可以使用SceneTemplateAsset.templatePipeline通过 C# 将脚本连接到模板的方法。
场景模板管线脚本必须派生自 [ISceneTemplatePipeline] 接口或 [SceneTemplatePipelineAdapter]. 它应该实现你想要做出反应的事件; 例如BeforeTemplateInstantiation或AfterTemplateInstantiation在下面的代码中。
例:
using UnityEditor.SceneTemplate;
using UnityEngine;
using UnityEngine.SceneManagement;
public class DummySceneTemplatePipeline : ISceneTemplatePipeline
{
public void BeforeTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, bool isAdditive, string sceneName)
{
if (sceneTemplateAsset)
{
Debug.Log($"Before Template Pipeline {sceneTemplateAsset.name} isAdditive: {isAdditive} sceneName: {sceneName}");
}
}
public void AfterTemplateInstantiation(SceneTemplateAsset sceneTemplateAsset, Scene scene, bool isAdditive, string sceneName)
{
if (sceneTemplateAsset)
{
Debug.Log($"After Template Pipeline {sceneTemplateAsset.name} scene: {scene} isAdditive: {isAdditive} sceneName: {sceneName}");
}
}
}
当您从具有可克隆依赖项的模板创建新场景时,Unity 会执行多个文件作。这些作中的大多数都会触发 Unity 事件,你可以在脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表.
实例化顺序如下:
Unity 会触发ISceneTemplatePipeline.BeforeTemplateInstantiation事件,并将该资产绑定到ISceneTemplatePipeline它触发的脚本。
Unity 会触发SceneTemplate.NewTemplateInstantiating事件。
Unity 会创建一个新场景,该场景是模板场景的副本。
Unity 会创建一个与新场景同名的文件夹,并将所有可克隆的依赖项复制到该文件夹中。
Unity 会重新映射到所有可克隆资产的引用,因此新场景指向克隆。
Unity 会触发ISceneTemplatePipeline.AfterTemplateInstantiation,并将资产绑定到ISceneTemplatePipeline它触发的脚本。
Unity 会触发SceneTemplate.NewTemplateInstantiated事件。