62 lines
2.2 KiB
C#
62 lines
2.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.Animations.Rigging;
|
|
using UnityEditorInternal;
|
|
|
|
namespace UnityEditor.Animations.Rigging
|
|
{
|
|
[CustomEditor(typeof(RigBuilder))]
|
|
class RigBuilderEditor : Editor
|
|
{
|
|
static readonly GUIContent k_RigLabel = new GUIContent("Rig Layers");
|
|
|
|
SerializedProperty m_Rigs;
|
|
ReorderableList m_ReorderableList;
|
|
|
|
void OnEnable()
|
|
{
|
|
m_Rigs = serializedObject.FindProperty("m_RigLayers");
|
|
m_ReorderableList = ReorderableListHelper.Create(serializedObject, m_Rigs, true, true);
|
|
if (m_ReorderableList.count == 0)
|
|
((RigBuilder)serializedObject.targetObject).layers.Add(new RigLayer(null));
|
|
|
|
m_ReorderableList.drawHeaderCallback = (Rect rect) => EditorGUI.LabelField(rect, k_RigLabel);
|
|
|
|
m_ReorderableList.onAddCallback = (ReorderableList list) =>
|
|
{
|
|
((RigBuilder)(serializedObject.targetObject)).layers.Add(new RigLayer(null, true));
|
|
};
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
serializedObject.Update();
|
|
EditorGUILayout.Separator();
|
|
m_ReorderableList.DoLayoutList();
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
[MenuItem("CONTEXT/RigBuilder/Transfer motion to constraint", false, 611)]
|
|
public static void TransferMotionToConstraint(MenuCommand command)
|
|
{
|
|
var rigBuilder = command.context as RigBuilder;
|
|
BakeUtils.TransferMotionToConstraint(rigBuilder);
|
|
}
|
|
|
|
[MenuItem("CONTEXT/RigBuilder/Transfer motion to skeleton", false, 612)]
|
|
public static void TransferMotionToSkeleton(MenuCommand command)
|
|
{
|
|
var rigBuilder = command.context as RigBuilder;
|
|
BakeUtils.TransferMotionToSkeleton(rigBuilder);
|
|
}
|
|
|
|
[MenuItem("CONTEXT/RigBuilder/Transfer motion to constraint", true)]
|
|
[MenuItem("CONTEXT/RigBuilder/Transfer motion to skeleton", true)]
|
|
public static bool TransferMotionValidate(MenuCommand command)
|
|
{
|
|
var rigBuilder = command.context as RigBuilder;
|
|
return BakeUtils.TransferMotionValidate(rigBuilder);
|
|
}
|
|
|
|
}
|
|
}
|