Files
aibis-dream/Assets/Scripts/SceneManagement/ActorAnima.cs
T
2025-05-26 14:59:42 +08:00

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();
}
}
}