Project_WL/Assets/FarmingIsland/Scripts/Editor/AudioDataDrawer.cs

42 lines
1.4 KiB
C#

using UnityEditor;
using UnityEngine;
namespace CryingSnow.FarmingIsland
{
[CustomPropertyDrawer(typeof(AudioData))]
public class AudioDataDrawer : PropertyDrawer
{
private const float LineHeight = 18f;
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
DrawFields(position, property);
EditorGUI.EndProperty();
}
private void DrawFields(Rect position, SerializedProperty property)
{
var idProp = property.FindPropertyRelative("id");
var clipProp = property.FindPropertyRelative("clip");
float spacing = 5f;
float idWidth = position.width * 0.35f;
float clipWidth = position.width - idWidth - spacing;
// Audio Id
var idRect = new Rect(position.x, position.y, idWidth, LineHeight);
EditorGUI.PropertyField(idRect, idProp, GUIContent.none);
// Audio Clip
var clipRect = new Rect(position.x + idWidth + spacing, position.y, clipWidth, LineHeight);
EditorGUI.PropertyField(clipRect, clipProp, GUIContent.none);
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
return LineHeight;
}
}
}