init
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace VOID.Editor.PropertyDrawers
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(SceneReference))]
|
||||
public class SceneFieldPropertyDrawer : PropertyDrawer
|
||||
{
|
||||
public override void OnGUI(Rect rect, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
EditorGUI.BeginProperty(rect, GUIContent.none, property);
|
||||
|
||||
var sceneAsset = property.FindPropertyRelative("_sceneAsset");
|
||||
var scenePath = property.FindPropertyRelative("_scenePath");
|
||||
|
||||
// Label + Field
|
||||
rect = EditorGUI.PrefixLabel(rect, GUIUtility.GetControlID(FocusType.Passive), label);
|
||||
var obj = EditorGUI.ObjectField(rect, sceneAsset.objectReferenceValue, typeof(SceneAsset), false);
|
||||
|
||||
// Value setter
|
||||
sceneAsset.objectReferenceValue = obj;
|
||||
scenePath.stringValue = obj ? AssetDatabase.GetAssetPath(obj) : "";
|
||||
|
||||
EditorGUI.EndProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user