55 lines
2.3 KiB
C#
55 lines
2.3 KiB
C#
using Rukhanka.Hybrid;
|
|
using UnityEditor;
|
|
using UnityEditor.UIElements;
|
|
using UnityEngine.UIElements;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
namespace Rukhanka.Editor
|
|
{
|
|
[CustomEditor(typeof(RigDefinitionAuthoring))]
|
|
public class RigDefinitionAuthoringEditor : UnityEditor.Editor
|
|
{
|
|
public VisualTreeAsset inspectorXML;
|
|
VisualElement boneStrippingMaskElement;
|
|
VisualElement rigUserConfigGroupElement;
|
|
VisualElement inspector;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
public override VisualElement CreateInspectorGUI()
|
|
{
|
|
inspector = new VisualElement();
|
|
inspectorXML.CloneTree(inspector);
|
|
|
|
boneStrippingMaskElement = inspector.Q("boneStrippingMask");
|
|
boneStrippingMaskElement.TrackSerializedObjectValue(serializedObject, ShowOrHideBoneStrippingMask);
|
|
ShowOrHideBoneStrippingMask(serializedObject);
|
|
|
|
rigUserConfigGroupElement = inspector.Q("rigUserConfigGroup");
|
|
rigUserConfigGroupElement.TrackSerializedObjectValue(serializedObject, ShowOrHideRigUserConfig);
|
|
ShowOrHideRigUserConfig(serializedObject);
|
|
return inspector;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
void ShowOrHideBoneStrippingMask(SerializedObject so)
|
|
{
|
|
// Hide bone stripping mask for "None" and "Automatic" modes
|
|
var strippingMode = serializedObject.FindProperty("boneEntityStrippingMode");
|
|
var showBoneStrippingMask = (RigDefinitionAuthoring.BoneEntityStrippingMode)strippingMode.enumValueIndex == RigDefinitionAuthoring.BoneEntityStrippingMode.Manual;
|
|
boneStrippingMaskElement.style.display = showBoneStrippingMask ? DisplayStyle.Flex : DisplayStyle.None;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
void ShowOrHideRigUserConfig(SerializedObject so)
|
|
{
|
|
var m = serializedObject.FindProperty("rigConfigSource");
|
|
var showUserConfig = (RigDefinitionAuthoring.RigConfigSource)m.enumValueIndex == RigDefinitionAuthoring.RigConfigSource.UserDefined;
|
|
rigUserConfigGroupElement.style.display = showUserConfig ? DisplayStyle.Flex : DisplayStyle.None;
|
|
}
|
|
}
|
|
}
|