版本:Unity 6 (6000.0)
语言English
  • C#

SceneAsset

UnityEditor 中的类

/

继承自:Object

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

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对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy删除游戏对象、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您改用 Destroy。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何已加载的活动对象。
FindFirstObjectByType检索类型为 type 的第一个已加载的活动对象。
FindObjectsByType检索类型为 type 的所有已加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某些 GameObject 相关)的快照并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用是否引用同一个对象。