using System.Collections; using System.Collections.Generic; using UnityEngine; namespace MuHua { /// /// 动作控制器 /// public class KinesisController : MonoBehaviour { public KinesisAnimator animator; public KinesisMovement movement; private IKinesis currentKinesis; public virtual void Awake() => TransitionKinesis(new KinesisIdle()); public virtual void Update() => currentKinesis?.UpdateKinesis(); /// 动作过渡 public virtual void TransitionKinesis(IKinesis kinesis) { //不可以转换 if (currentKinesis != null && !currentKinesis.Transition(kinesis)) { return; } //进行转换 currentKinesis?.FinishKinesis(); currentKinesis = kinesis; currentKinesis?.StartKinesis(); animator?.SetKinesis(currentKinesis); movement?.SetKinesis(currentKinesis); } } }