当前位置: 首页 > news >正文

(M)UNITY三段攻击制作

三段攻击逻辑

基本逻辑:

人物点击攻击按钮进入攻击状态(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");}
http://www.lryc.cn/news/291922.html

相关文章:

  • PHP的线程安全与非线程安全模式选哪个
  • asdf安装不同版本的nodejs和yarn和pnpm
  • Spring的事件监听机制
  • Zookeeper分布式命名服务实战
  • DEV-C++ ege.h库 绘图教程(六)
  • MySQL原理(一)架构组成之物理文件组成
  • 代码随想录算法训练营第三十七天 | 738.单调递增的数字、 968.监控二叉树
  • 【Django-ninja】django-ninja的hello world
  • ArrayList集合初始化长度是多少,初始化的时候分配内存空间吗
  • C语言数组:从入门到进阶
  • 9.回文数
  • 一分钟在SpringBoot项目中使用EMQ
  • SOME/IP 协议介绍(七)传输 CAN 和 FlexRay 帧
  • 与数组相关经典面试题
  • 数据结构与算法面试系列-02
  • CMake 完整入门教程(五)
  • pgsql中with子句和直接查询差别
  • Day 31 | 贪心算法 理论基础 、455.分发饼干 、 376. 摆动序列 、 53. 最大子序和
  • vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.
  • React16源码: React中LegacyContext的源码实现
  • Gin 框架之jwt 介绍与基本使用
  • 从[redis:LinkedList]中学习链表
  • Prometheus+grafana配置监控系统
  • Linux之安装配置CentOS 7
  • 神经网络与深度学习Pytorch版 Softmax回归 笔记
  • git学习及简单maven打包
  • 如何用MapTalks IDE来发布网站?
  • 我用selenium开发了一个自动创建任务,解放重复性工作
  • 安卓11修改HDMI自适应分辨率
  • Linux实验记录:使用Apache的虚拟主机功能