成都网站建设公司湖南岚鸿,安徽湖滨建设集团网站,网页制作用什么软件做,烟台服装定制三段攻击逻辑
基本逻辑#xff1a;
人物点击攻击按钮进入攻击状态#xff08;bool isAttack#xff09;
在攻击状态下#xff0c; 一旦设置的触发器#xff08;trigger attack#xff09;被触发#xff0c;设置的计数器#xff08;int combo#xff09;查看目前攻击…三段攻击逻辑
基本逻辑
人物点击攻击按钮进入攻击状态bool isAttack
在攻击状态下 一旦设置的触发器trigger attack被触发设置的计数器int combo查看目前攻击次数如果0播放一段攻击1,二段攻击2,三段攻击。
对动画exit time的设置
如果 AnimatorStateTransition.hasExitTime 为 true则 exitTime 表示过渡可以生效的准确时间。\ 这是以标准化时间表示的因此举例来说退出时间 0.75 意味着在第一帧上如果已播放了 75% 的动画Exit Time 条件就会为 true。
也就是说exit time设置为90%后一旦在某段攻击动画播放超过90%后就满足进入exit time的条件此时再次点击攻击按钮是无法combo的。
也就是也就是说只有在某段攻击动画播放0-90%的阶段点击攻击按钮才能触发combo。
同时需要设置如果exut time到了1进入到exit状态退出attack层的动画。
ps 但是由于三段攻击的时间都很短特别是第二段攻击很难达到combo的条件所以最后去掉了对combo计数的判断 整体攻击逻辑变成进入攻击状态0.9个动作内点击攻击触发器被触发进入下一个攻击状态
状态转换条件
//最终删除combo相关部分 1.进入攻击1段 2.combo条件的达成 3.没有及时按下攻击键导致退出攻击动画 按键绑定及代码
1.按键绑定 2.playerController代码
public bool isAttack;private void Awake(){//attack事件注册inputControl.Gameplay.Attack.started PlayerAttack; }private void PlayerAttack(InputAction.CallbackContext context)
{//按键点击后进入攻击状态isAttack true;//触发器的触发playerAnimation.PlayerAttack();
}3.animation数据的链接 void Update(){SetAnimation();}public void SetAnimation(){anim.SetBool(isAttack, playerController.isAttack); }public void PlayerAttack(){anim.SetTrigger(attack);}