SceneAsset
class in
UnityEditor
/
継承:Object
フィードバック
ありがとうございます
この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。
閉じる
送信に失敗しました
なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。
閉じる
マニュアルに切り替える
説明
SceneAsset はエディターでシーンオブジェクトに対する参照を持つのに使用されます。
ユーザーがフィールドの値としてシーンオブジェクトを取得できるよう、 ObjectField UI 要素の型として使用されます。
以下の例はシーンをエディターで取得する方法です。 ScenePicker コンポーネントはシーンのゲームオブジェクトにアタッチされています。
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();
}
}