CTT/Unity/Assets/Editor/Game/MonoAnimancerEditor.cs

64 lines
2.2 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using System;
using System.Collections.Generic;
using ET;
using UnityEditor;
using UnityEngine;
2021-04-11 19:50:39 +08:00
using Object = UnityEngine.Object;
2021-04-08 20:09:59 +08:00
namespace Animancer.Editor
{
[CustomEditor(typeof(MonoAnimancer), true), CanEditMultipleObjects]
public class MonoAnimancerEditor : AnimancerComponentEditor
{
private bool _ShowResetOnDisableWarning;
protected override bool DoOverridePropertyGUI(string path, SerializedProperty property, GUIContent label)
{
if (path == "_Clips")
{
EditorGUILayout.PropertyField(property, label, true);
for (int i = 0; i < property.arraySize; i++)
{
2021-04-11 19:50:39 +08:00
SerializedProperty clipInof = property.GetArrayElementAtIndex(i);
Object clipGo = clipInof.FindPropertyRelative("AnimationClip").objectReferenceValue;
2021-04-08 20:09:59 +08:00
if (clipGo == null) continue;
GetKey(clipInof, clipGo.name);
}
return true;
}
return base.DoOverridePropertyGUI(path, property, label);
}
private void GetKey(SerializedProperty clipInof, string clipName)
{
if (clipName.Contains("Idle"))
{
clipInof.FindPropertyRelative("Key").enumValueIndex = (int)AnimationKey.Idle;
}
else if (clipName.Contains("Run"))
{
clipInof.FindPropertyRelative("Key").enumValueIndex = (int)AnimationKey.Run;
}
else if (clipName.Contains("Attack"))
{
clipInof.FindPropertyRelative("Key").enumValueIndex = (int)AnimationKey.Atk;
}
else if (clipName.Contains("Hurt")
)
{
clipInof.FindPropertyRelative("Key").enumValueIndex = (int)AnimationKey.Hurt;
}
else
clipInof.FindPropertyRelative("Key").enumValueIndex = (int)AnimationKey.Other;
}
private void MoveResettingTargetsAboveTheirAnimator()
{
2021-04-11 19:50:39 +08:00
2021-04-08 20:09:59 +08:00
}
private bool AreAllResettingTargetsAboveTheirAnimator()
{
2021-04-11 19:50:39 +08:00
return true;
2021-04-08 20:09:59 +08:00
}
}
}