EditorSceneManager.OpenPreviewScene
Declaration
public static SceneManagement.Scene OpenPreviewScene(string scenePath);Параметры
| Параметр | Описание |
|---|---|
| scenePath | Scene файл для открытия. |
Возвращаемое значение
Scene Создан предварительный просмотр Scene.
Описание
Открывает ресурс Scene в предварительном просмотре Scene.
Вы можете использовать эту функцию для инструментов, которые требуют доступа к GameObjects, но где сцена не должна отображаться в Hierarchy. Обязательно вызовите ClosePreviewScene для предотвращения утечки сцен.
Дополнительные ресурсы: NewPreviewScene, ClosePreviewScene.
using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine;
public static class TestOpenAsPreviewScene { [MenuItem("Assets/Scene Root Names")] static void OpenContextClickedSceneInAPreviewScene() { SceneAsset sceneAsset = Selection.activeObject as SceneAsset; if (sceneAsset == null) { Debug.Log("Context click on a Scene Asset file"); return; }
var assetPath = AssetDatabase.GetAssetPath(sceneAsset); var scene = EditorSceneManager.OpenPreviewScene(assetPath); try { var rootGameObjects = scene.GetRootGameObjects();
Debug.Log($"Root GameObject Names (count: {rootGameObjects.Length})"); foreach (var gameObject in rootGameObjects) Debug.Log(gameObject.name); } finally { EditorSceneManager.ClosePreviewScene(scene); } } }