首页 > 其他分享 >2-12. 三段攻击动画的实现

2-12. 三段攻击动画的实现

时间:2024-02-24 15:22:05浏览次数:26  
标签:动画 12 isAttack 触发 攻击 三段 exit

创建动画片段

修改动画状态机

增加 Attack Layer,把刚才制作好的动画片段加进去

再增加两个变量,bool 类型的 isAttack 和 trigger 类型的 attack

New State -> blueAttack1,isAttack = true 并且 attack 触发

blueAttack1 -> blueAttack2,isAttack = true 并且 attack 触发,有 exit time,为 0.9,表示在动画播放 90% 以前触发就能进入二段攻击;另外当 exit time 为 1 之后进入 exit

blueAttack2 -> blueAttack3,isAttack = true 并且 attack 触发,同游 exitTime 0.9 前触发进入三段攻击,1进入 exit

blueAttack3 -> exit,exitTime = 1 进入

修改输入控制器

用键盘上的 J 键或者手柄上的 南 键表示攻击键

实现攻击代码

在 PlayerController 里面,当按下攻击键之后,进入 PlayerAttack 方法

在 PlayerAttack 方法里面,触发一个 Trigger

在 PlayerAnimation 里面,还需要每帧都检测是否在攻击中

退出攻击的逻辑

现在按下攻击键,isAttack 一直为 true,这会导致我们进行三段攻击之后,会再多出一次攻击。因此我们需要像之前的 Hurt 动画一样,在动画结束之后把 Hurt 状态改回来

这里我们给每个动画片段增加 Attack Finish 脚本

AttackFinish 在 OnStateExit 里面把 isAttack 设置为 false,给 blueAttack2 和 blueAttack3 都绑定这个脚本。这样就能避免三段攻击之后会多一次攻击

项目相关代码

代码仓库:https://gitee.com/nbda1121440/2DAdventure.git

标签:20240224_1459

标签:动画,12,isAttack,触发,攻击,三段,exit
From: https://www.cnblogs.com/hellozjf/p/18031127

相关文章

  • 2-11. 受伤和死亡的逻辑和动画
    添加受伤和死亡动画片段通过新的层来实现受伤和死亡动画点击动画控制器右上角的+,然后新建一个Layer注意Weight要改成1,Blending要改成Additive受伤的话,我们通过hurt来触发,死亡我们通过isDead来控制在HurtLayer中,当hurt触发的时候,就会播放blueHurt动画,......
  • 2-9. 实现人物下蹲逻辑和动画
    动画片段做成动画片段,命名为blueCrouchStart和blueCrouchIdle动画状态机这里我们再接触一个新的东西,Sub-StateMachine,可以通过右键CreateSub-StateMachine来实现点开Crouch,把之前创建好的blueCrouchStart和blueCrouchIdle片段加进来另外添加一个变量,isCrouc......
  • 2-8. 创建人物跳跃动画
    人物跳跃的五个阶段根据这张图把图片切好,并做好动画状态使用BlendTree实现跳跃动画在动画状态机中新建一个BlendTree,然后给它添加三个Motion因为我设置的JumpForce是5,所以人物速度54时候是起跳阶段,41的时候是上升阶段,1~-1的时候是空中换腿阶段,-1以后是下降阶段。虽然......
  • 2-6. 创建人物基本动画
    给帧图片命名添加动画首先需要给Player添加Animator组件然后创建Animations/Player文件夹,并在该文件夹下面添加AnimatorController,起名叫Player然后把Player拖到Animator的Controller上面打开动画状态机Window->Animation->Animator创建Idle动......
  • 刘铁猛C#学习笔记12 参数种类详解
    一、值参数(传值参数、值传递)指参数的种类为值参数,而非参数数据类型为值类型1.值类型的传值参数类似一个新声明的局部变量,或传进来的实参的一个副本可以在方法体内重现赋值,但其在方法体内被赋值时,不会影响传进来的本体 2.引用类型的传值参数引用类型变量存储的是实例......
  • UVA12421 (Jiandan) Mua (I) - Lexical Analyzer 题解
    蒟蒻的第一篇紫题题解!题目传送门思路一眼模拟,还是大模拟。不由得想起了我编了\(4\)个小时的猪国杀……输入首先处理输入,这里我们用一个字符串数组来存储所有的输入,然后再进行处理。while(getline(cin,sr))str[++cnt]=sr+'\n';处理时需要双重循环,注意如果遍历到空格要跳......
  • 2.12
    学习前端工程化.以前老是看到别人在用这个,知道它简洁好用,可就是一直不会用. 之前我用的vue的声明式渲染,功能全写在了一个页面,几百行的代码,改个错还得来回翻,及其影响开发效率.今日代码<template><divclass="app"><divclass="box"@click="fn"></div></div>......
  • css 动画
    <divclass="quan-box">逐渐放大消失<div>  /*申明一个div的class用于执行动画*/.quan-box{opacity:0;background:#70D97C;position:absolute;//3秒执行完成quan动画,infinite动画会无限次重复播放,steps(40)表示将整个动画过程分割成40个......
  • three-第三方动画库-让物体动起来更简单(gsap)
    gsap介绍:GreenSockAnimationPlatform(GSAP)是一个业界知名的动画库,它被1100多万个网站使用,有超过50%的获奖的网站都是用了它。不管是在原生环境中,还是任意的框架中,你可以使用GSAP去让非常多的东西动起来。不管你是想要去让UI界面产生交互动画,还是SVG图形产生动画,甚至是Three......
  • 【2024-02-12】连岳摘抄
    23:59明月高悬夜空,眼下是春天。我想起了你,内心是完整的。                                                 ——费尔南多·佩索阿当世上没有一个人爱我们,周边全是陌......