Version: 2023.1

SceneAsset

class in UnityEditor

/

继承自:Object

切换到手册

描述

SceneAsset 用于在编辑器中引用场景对象。

该类可用作 ObjectField UI 元素的类型,以允许用户选择场景对象作为字段的值。

此示例显示如何在编辑器中选择场景。ScenePicker 组件放置在场景中的游戏对象上:

using UnityEngine;

public class ScenePicker : MonoBehaviour { [SerializeField] public string scenePath; }

ScenePickerEditor 脚本必须位于项目的 Editor 目录中。它在编辑器中提供自定义检视面板,该检视面板使用 ObjectField 中的 SceneAsset 类来允许用户选取场景。

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(ScenePicker), true)] public class ScenePickerEditor : Editor { public override void OnInspectorGUI() { var picker = target as ScenePicker; var oldScene = AssetDatabase.LoadAssetAtPath<SceneAsset>(picker.scenePath);

serializedObject.Update();

EditorGUI.BeginChangeCheck(); var newScene = EditorGUILayout.ObjectField("scene", oldScene, typeof(SceneAsset), false) as SceneAsset;

if (EditorGUI.EndChangeCheck()) { var newPath = AssetDatabase.GetAssetPath(newScene); var scenePathProperty = serializedObject.FindProperty("scenePath"); scenePathProperty.stringValue = newPath; } serializedObject.ApplyModifiedProperties(); } }

继承的成员

变量

hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。