42 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|