RoboticArms/Library/PackageCache/com.unity.animation.rigging@68167b505d2b/Editor/AnimationRig/RigLayerDrawer.cs
2025-11-17 15:16:36 +07:00

41 lines
1.3 KiB
C#

using UnityEngine;
using UnityEngine.Animations.Rigging;
namespace UnityEditor.Animations.Rigging
{
[CustomPropertyDrawer(typeof(RigLayer))]
class RigLayerDrawer : PropertyDrawer
{
const int k_Padding = 6;
const int k_TogglePadding = 30;
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
return EditorGUIUtility.singleLineHeight;
}
public override void OnGUI(Rect rect, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(rect, label, property);
var w = rect.width - k_TogglePadding;
var weightRect = new Rect(rect.x + w + k_Padding, rect.y, rect.width - w - k_Padding, rect.height);
rect.width = w;
EditorGUI.BeginChangeCheck();
EditorGUI.PropertyField(rect, property.FindPropertyRelative("m_Rig"), label);
var indentLvl = EditorGUI.indentLevel;
EditorGUI.indentLevel = 0;
EditorGUI.PropertyField(weightRect, property.FindPropertyRelative("m_Active"), GUIContent.none);
EditorGUI.indentLevel = indentLvl;
if (EditorGUI.EndChangeCheck())
property.serializedObject.ApplyModifiedProperties();
EditorGUI.EndProperty();
}
}
}