Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Настройка создания новой сцены

Для запуска пользовательского кода, когда Unity создает новую сценуСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Посмотрите в Словарь
из шаблона, создайте скрипт конвейера шаблона сцены и подключите его к шаблону. Каждый раз, когда вы создаете новую сцену из шаблона, Unity также создает новый экземпляр скрипта конвейера.

Чтобы подключить скрипт к шаблону:

  1. Проверьте шаблон, чтобы изменить его свойства.
  2. Настройте свойство Конвейер шаблонов сцен, чтобы оно указывало на сценарий конвейера шаблонов сцен.

Для подключения сценария к шаблон через 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, которые вы можете прослушивать и реагировать на них в скриптахфрагменте кода, который позволяет вам создавайте свои собственные Компоненты, инициируйте игровые события, изменяйте свойства Компонентов с течением времени и реагируйте на действия пользователя любым удобным для вас способом. Подробнее
См. в Словарь
.

Последовательность создания экземпляра следующая:

  1. Вы нажимаете Создать в диалоге "Новая сцена". Unity вызывает:
    • Ресурс шаблона сцены.
    • Шаблон сцены. Это сцена Unity, связанная с шаблоном.
    • Новая сцена. Это новый экземпляр шаблона Сцена.
  2. Unity запускает событие ISceneTemplatePipeline.BeforeTemplateInstantiation для ресурса шаблона и привязывает ресурс к скрипту ISceneTemplatePipeline. которые он запускает.

  3. Unity запускает событие SceneTemplate.NewTemplateInstantiating.

  4. Unity создает новую сцену, которая является копией сцены шаблона.

  5. Unity создает папку с тем же именем, что и новая сцена, и копирует все клонируемые зависимости в эту папку.

  6. Unity открывает новую сцену в памяти и запускает следующие события:
  7. Unity переназначает ссылки на все клонируемые ресурсы, поэтому новая сцена указывает на клоны.

  8. Unity сохраняет новую сцену и запускает следующие события:
  9. Unity запускает ISceneTemplatePipeline.AfterTemplateInstantiation для ресурса шаблона и привязывает ресурс к скрипту ISceneTemplatePipeline, который это срабатывает.

  10. Unity запускает событие SceneTemplate.NewTemplateInstantiated.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3