Health/Assets/Scripts/UI/Component/GudieAnimationManager.cs

67 lines
1.8 KiB
C#
Raw Normal View History

2023-11-27 05:49:53 +00:00
using System;
using System.Collections;
2023-11-07 13:55:35 +00:00
using System.Collections.Generic;
using UnityEngine;
public class GudieAnimationManager : MonoBehaviour
2023-11-27 05:49:53 +00:00
{
2023-11-07 13:55:35 +00:00
private Animator _animator;
2023-11-10 08:12:37 +00:00
private string _currName;
2023-11-27 05:49:53 +00:00
private List<AvatarAction> _actionList = new List<AvatarAction>();
public Animator Animator
{
get
{
if (_animator == null)
{
_animator = transform.GetComponentInChildren<Animator>();
}
return _animator;
}
}
2023-11-07 13:55:35 +00:00
private void Awake()
{
_animator = transform.GetComponentInChildren<Animator>();
}
public void Play(string name)
{
2023-11-27 05:49:53 +00:00
Animator.CrossFade(name, 0.5f);
2023-11-10 08:12:37 +00:00
_currName = name;
}
2023-11-27 05:49:53 +00:00
public void PlayCurrentActionList(List<AvatarAction> actionList)
{
_actionList = actionList;
YogaManager.Instance.ActionIndex = 0;
Play(Enum.GetName(typeof(AvatarAction), _actionList[YogaManager.Instance.ActionIndex]));
}
2023-11-10 08:12:37 +00:00
private void Update()
{
if (string.IsNullOrEmpty(_currName))
return;
//当未达到指标且动画播放完毕时,重新播放
2023-11-27 05:49:53 +00:00
if (Animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1.0f)
2023-11-10 08:12:37 +00:00
{
2023-11-27 05:49:53 +00:00
//如果列表动画index小于列表长度播放下一个动画
YogaManager.Instance.ActionIndex++;
//如果列表动画index大于等于列表长度说明动画播放完毕停止播放
if (YogaManager.Instance.ActionIndex >= YogaManager.Instance.LevelData.Actions.Count)
2023-11-10 08:12:37 +00:00
{
2023-11-27 05:49:53 +00:00
Stop();
return;
2023-11-10 08:12:37 +00:00
}
2023-11-27 05:49:53 +00:00
Play(Enum.GetName(typeof(AvatarAction), _actionList[YogaManager.Instance.ActionIndex]));
2023-11-10 08:12:37 +00:00
}
2023-11-07 13:55:35 +00:00
}
2023-11-10 07:17:23 +00:00
public void Stop()
{
2023-11-27 05:49:53 +00:00
Animator.StopPlayback();
2023-11-10 07:17:23 +00:00
}
2023-11-07 13:55:35 +00:00
}