using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
using UnityEditor.Animations;
using System.Linq;
#endif
public class EditorAnimationPlayMyTools : MonoBehaviour
{
}
#if UNITY_EDITOR
[CustomEditor(typeof(EditorAnimationPlayMyTools))]
public class EditorAnimationPlayMyToolsInspector : Editor
{
private AnimationClip[] m_Clips = null;
private EditorAnimationPlayMyTools m_Script = null;
private GameObject m_AniObj = null;
private void OnEnable()
{
m_Script = target as EditorAnimationPlayMyTools;
Animator animator = m_Script.gameObject.GetComponentInChildren<Animator>();
m_AniObj = animator.gameObject;
AnimatorController controller = (AnimatorController)animator.runtimeAnimatorController;
m_Clips = controller.animationClips;
}
private int m_SelectIndex = 0;
private float m_SeliderValue = 0;
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
EditorGUI.BeginChangeCheck();
m_SelectIndex = EditorGUILayout.Popup("选择动画", m_SelectIndex, m_Clips.Select(pkg => pkg.name).ToArray());
m_SeliderValue = EditorGUILayout.Slider("播放进度", m_SeliderValue, 0f, 1f);
if (EditorGUI.EndChangeCheck())
{
AnimationClip clip = m_Clips[m_SelectIndex];
float time = clip.length * m_SeliderValue;
clip.SampleAnimation(m_AniObj, time);
}
}
}
#endif