scriptmultiplescenes
Использование скриптов для редактирования нескольких сцен
Вы можете редактировать несколько сцен, используя скрипты в Редакторе или во время выполнения.
Использование скриптов в редакторе
При использовании (или запуске) скриптов в Редакторе используйте:
-
Sceneструктура: доступная и в редакторе, и во время выполнения, структура Scene содержит свойства только для чтения, относящиеся к самой сцене, — например, имя и путь к ассету. -
EditorSceneManagerAPI: этот класс доступен только в редакторе и содержит несколько функций, реализующих все возможности многосценного редактирования, описанные на страницах Настройка нескольких сцен и Печь данные в нескольких сценах. -
SceneSetupвспомогательный класс: класс, в котором можно хранить сведения о сцене, присутствующей в окне Hierarchy.
Использование скриптов времени выполнения
При использовании скриптов во время выполнения для редактирования нескольких сцен, используйте функции в SceneManager класс, такой как LoadScene и UnloadScene.
Советы:
- Чтобы инстанционировать префаб в сцене, использование
PrefabUtility.InstantiatePrefab. - Для перемещения объектов в корень сцены используйте
Undo.MoveGameObjectToScene. - Чтобы избежать необходимости настраивать окно Hierarchy каждый раз, когда вы перезапускаете Редактор, или для сохранения различных настроек, используйте
EditorSceneManager.GetSceneManagerSetup, которое также получает список объектов SceneSetup, описывающих текущую настройку. Вы можете сериализировать объекты вScriptableObjectвместе с любой другой информацией, которую вы хотите сохранить о настройке сцены. Чтобы восстановить окно Hierarchy, воссоздайте списокSceneSetupsи используйтеEditorSceneManager.RestoreSceneManagerSetup. - Чтобы получить список загруженных сцен во время выполнения, получите
sceneCountи выполните итерацию по сценам сGetSceneAt.