
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Linq;
[RequireComponent(typeof(Animator))]
public class PlayAnimInScene : MonoBehaviour
{
}
#if UNITY_EDITOR
[CustomEditor(typeof(PlayAnimInScene),true)]
public class AnimUtility:Editor
{
PlayAnimInScene _Script;
private AnimationClip[] clips;
private float len;
private int curIndex;
private void OnEnable()
{
_Script = target as PlayAnimInScene;
Animator anim = _Script.GetComponent<Animator>();
clips = anim.runtimeAnimatorController.animationClips;
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
EditorGUI.BeginChangeCheck();
GUILayout.Label("当前剪辑:");
curIndex = EditorGUILayout.Popup(curIndex, clips.Select(p => p.name).ToArray());
GUILayout.Label("播放长度:");
len = EditorGUILayout.Slider(len, 0, 1);
if(EditorGUI.EndChangeCheck())
{
AnimationClip clip = clips[curIndex];
clip.SampleAnimation(_Script.gameObject, clip.length * len);
}
}
}
#endif