56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
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<Animator>();
|
|
// 设置基本信息
|
|
base.Init(actorName, slot);
|
|
// 获取Controller
|
|
var controller = ResourceKit.LoadAssetSync<RuntimeAnimatorController>($"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();
|
|
}
|
|
}
|
|
} |