using Sirenix.OdinInspector; using System; using System.Collections; namespace ChivaXR { public enum TimeType { time, aniFrame } [System.Serializable] /// /// 动画驱动工具组件基类 /// public abstract class AnimationDriverBase : IAniState { [LabelText("执行序列")] [InfoBox("$Info")] public AnimationSequence animationSequence = AnimationSequence.synchronization; public string Info { get { if (animationSequence == AnimationSequence.synchronization) return "序列动画同步执行"; else return "序列动画等待当前动画完成后执行"; } } public abstract void InitState(); public abstract void FinishedState(); /// /// 动画被启动时执行一次 /// public abstract void StartPlay(Action finishedCallBack = null); /// /// 为子类提供协程执行方法 /// /// public void StartAniCoroutine(IEnumerator coroutine) { AnimationCoroutine.Instance.StartCoroutine(coroutine); } public virtual void OnDrawGizmos() { } public virtual string AnimationDescription() { return this.GetType().ToString() + "该类型动画描述暂无:"; } } }