using System.Collections; using AibisDream.Framework; using AibisDream.Utility; using DG.Tweening; using UnityEngine; namespace AibisDream { public class ActorAnima : AbsActor { private Animator _animator; public override void Init(string actorName, ActorSlot slot) { _animator = GetComponent(); // 设置基本信息 base.Init(actorName, slot); // 获取Controller var controller = ResourceKit.LoadAssetSync($"Animation/{actorName}"); _animator.runtimeAnimatorController = controller; spriteRenderer.SetAlpha(0); } public override void Show() { spriteRenderer.SetAlpha(1); } public override void Hide() { spriteRenderer.SetAlpha(0); } public override void ChangeState(string animaName) { _animator.Play(animaName); } public override IEnumerator ChangeStateAsync(string animaName) { _animator.Play(animaName); var info = _animator.GetCurrentAnimatorStateInfo(0); yield return new WaitForSeconds(info.length); } public override IEnumerator FadeInAsync(float duration) { yield return spriteRenderer.DOFade(1, duration).WaitForCompletion(); } public override IEnumerator FadeOutAsync(float duration) { yield return spriteRenderer.DOFade(0, duration).WaitForCompletion(); } } }