思路讲解

三连击动作动画状态转换关系如下
(1)Idle->Attack1->Idle
(2)Idle->Attack1->Attack2->Idle
(3)Idle->Attack1->Attack2->Attack3->Idle
很容易理解,实现上述动画状态转换即完成了三连击。
本次才用Animator Controller来实现上述转换。

具体实现

首先介绍一下normalizedTime

这个是animator的属性 其value的小数部分代表播放动画的完成度,及播放了百分之几的动画。

其次在介绍状态结束后冲突


例如现在为状态1,当两条线路条件同时满足该如何选择,是转到状态2,还是沿另一条线转向idle。

再来看下这幅图

看到那个84%了吗 可以通过用鼠标点击向右的三角,显示拖动改变。即第一个动画进行到84%,第二个动画开始。

同理这个是90%,可以理解了吧。

这是状态1向两个状态转换,若条件同时成立转向小的,即84%。
所以把非转向idle的值调小些即可。
条件设置用一个interger attack 和 trigger attack1来控制。

第一个条件为 触发attack1(注意没有等于)
第二个条件为 attack=2
第三个条件为 attack=3
以上为连击顺序,返回idle状态的条件为无;

anim.SetInteger(“attack”,1);
这并不直接控制状态只是起一个防止第二攻击动画自动播放,所以要设置一个非2的值,本次设为1。

static int attack1State = Animator.StringToHash("Base Layer.attack1.1");static int attack2State = Animator.StringToHash("Base Layer.attack1.2");static int attack3State = Animator.StringToHash("Base Layer.attack1.3");void Attack1(){if( currentBaseState.fullPathHash == idleState){if (!anim.IsInTransition(0)){anim.SetTrigger("attack1");anim.SetInteger("attack",1);}}else if(currentBaseState.fullPathHash==attack1State && currentBaseState.normalizedTime>0.5){anim.SetInteger("attack", 2);}else if (currentBaseState.fullPathHash == attack2State && currentBaseState.normalizedTime > 0.5){anim.SetInteger("attack", 3);}else if (currentBaseState.fullPathHash==attack3State){print("PL**************************************PL");}}

Unity简单的实现动画三连击脚本相关推荐

  1. unity简单自由漫游摄像机控制脚本

    "幽灵视角",适合用来漫游场景 把代码加载到摄像机上 using System.Collections; using System.Collections.Generic; usi ...

  2. 【Unity入门计划】Unity2D动画(2)-脚本与混合树实现玩家角色动画过渡

    目录 1 玩家角色移动伴随的简单动画 1.1 行走 1.2 停留 1.3 攻击敌人(触发型) 1.4 受伤(触发型) 1.5 跳跃 1.6 下蹲 2 动画间的过渡 3 过渡的判断逻辑 3.1 行走与停 ...

  3. Unity Animator入门:使用Animator和trigger参数做简单的UI动画

    Unity中使用Animator和trigger参数做简单的UI动画 概述 原理 Toast组件构成 添加Animator组件 创建default状态动画 录制hide和show动画 设置loopTi ...

  4. Unity Animation从UAS获取动画资产到编制状态机控制简单的人物动画

    Animation 动画 0.前言 这个笔记用于讨论在Unity中开发游戏时使用动画的相关知识. 这个笔记最终期望能够达到:在Unity的Demo中展现一个人物,其能够进行类似挥拳.开门的具体动作. ...

  5. Unity 制作简单的任务动画

    Unity 制作简单的任务动画 1.添加人物模型到unity 我使用的是unity store中的免费模型: https://assetstore.unity.com/packages/3d/char ...

  6. Unity 简单动画

    动画组件目前有新旧两种 旧版组件:Animation 我们可以自己简单制作一个动画  动画就是改变物体的数值我们可以添加属性来进行声明改变 添加后,就给了我们两帧,第一帧是什么样,第二帧改变成什么样, ...

  7. Max动画分割脚本 Unity 自动识别动画分割信息

    Max动画分割脚本 Unity3d自动识别动画分割信息 看到TechArtist群里有人想要这个插件,国外网站上收费4.99欧元,想想还是把早期写的脚本拿出来分享吧!部分功能源码参考来至于网络! 功能 ...

  8. [Unity C#教程] 游戏对象和脚本

    文章转载自:https://www.cnblogs.com/UnityYork/p/7704803.html [Unity C#教程] 游戏对象和脚本 博主最近在学习Unity,发现一个英文教程很好. ...

  9. Unity简单2D游戏开发

    Unity简单2D游戏开发 前言: 近日比较无聊,在b站找了一个up主,跟着他的教程来做游戏--开发一个简单的2D游戏 用 Tilemap 绘制场景 新建一个2D项目,在Unity Asset Sto ...

最新文章

  1. 【Qt】QtCreator无法调试终端程序,启动报错SIGSTOP
  2. Swift2.0系列]Error Handling(项目应用篇)
  3. if转java_java-从if-else转换为方法
  4. 如何在电脑上安装python-在电脑上安装python的方法
  5. 悲剧的程序员用程序写出的爱情
  6. Python Django Cookie的设置和获取相关属性
  7. 禅道开源版用户手册_Docker搭建开源版禅道以及项目基本流程介绍
  8. 我喜欢c语言用英文版,说说我喜欢英语的几个理由
  9. split函数python_Python numpy.hsplit函数方法的使用
  10. html中ajax检测用户名实例,利用Ajax检测用户名是否被占用的完整实例
  11. WPE教程 传奇神秘商店外挂制作
  12. java工程师可能需要的视频
  13. TeamViewer安装——好用的远程办公软件
  14. 小米airdots老是滴滴响_小米 MIUI 11 体验:更好看、更好用,还能一键屏蔽所有广告...
  15. 中文.com域名如何申请 什么是.com域名过期
  16. C++中break与continue的用法
  17. Problem H. Curious (莫比乌斯反演)
  18. hylafax php,运用PHP发送传真(PHP code for Sending fax)
  19. 静态库与动态库的区别
  20. 选择适合的Node.js授权认证策略

热门文章

  1. 在王者荣耀角度下分析面向对象程序设计B中23种设计模式之访问者模式
  2. 运动蓝牙耳机排行、五款运动型蓝牙耳机推荐性价比高
  3. 100佳精美的个人名片欣赏(系列二)
  4. halcon 区域变换 connection 将不连接的区域打散
  5. 使用直流电阻箱模拟阻值变化,用来进行NTC的温度测试
  6. [python](8)----面向对象练习题
  7. 前端 Jenkins 自动化部署
  8. 读取指定目录下的excel表格
  9. ADB学习01-2022-01-07
  10. 建筑企业也想享受15%优惠税率?你需要掌握4大指标2个关键