需求是这样的,角色在待机和跑动中都可以攻击也可能受击,但如果是跑动切到攻击和受击时同时还要保持跑动的动画,同样的待机切换的,执行完后就是待机动画。如果只用一层,Animator Controller 就很复杂,还可能额外编写较多的其他代码。这里有个难点在于,当正在跑时,想执行攻击,用trigger即可,但如果攻击执行完以后,该执行什么?按理说,应该是回到跑。但是,不仅仅是跑动中可以攻击,而是待机中也可以攻击。如果这要通过代码实现,可能比较冗长。不过如果用两层动画层,就很容易实现。

1.建立base层,控制 “idle”, “attack”, “hit”,“die”的切换

这个之间的切换都使用各自的trigger来切换。其中设置“die”可以被anystate切换去。

2.建立Run层,控制“run”


默认状态是null,也就是这上面没有任何动画,是空的, “null”和“run”的切换用个bool值控制。最后的参数和层看起来如下


将Run Layer的weight设置成0.5.。因为我们需要的跑的时候,能攻击,且保持跑的状态,这两个状态被简单的处理到了不同的层里了,那必须有个权重。说的直白点,跑动中攻击,播放的既不是跑动也不是攻击的动画,而是两者的混合。

3.增加代码,当“attack”或者“hit”动画执行完后回到idle。主要还是想有个“中心”状态,保持一个星型的结构,好控制。

  void PlayFinishedReturnToIdle(AnimatorStateInfo stateInfo)
{//不设置Has Exit Time 切换会流畅if (stateInfo.IsName("attack") || stateInfo.IsName("hit")){if (stateInfo.normalizedTime > 1.0f){animator.SetTrigger("idle");}}
}

————————————————
版权声明:本文为CSDN博主「1024路漫漫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wuming2016/article/details/88395907

Unity的Animator的动画层(Layer)相关推荐

  1. 巧用Unity的Animator的动画层(Layer)实现跑动中攻击和受击

    需求是这样的,角色在待机和跑动中都可以攻击也可能受击,但如果是跑动切到攻击和受击时同时还要保持跑动的动画,同样的待机切换的,执行完后就是待机动画.如果只用一层,Animator Controller ...

  2. Unity中Animator播放动画后无法修改transform的问题

    本文分享Unity中Animator播放动画后无法修改transform的问题 在使用Animator时, 如果某些动画状态设计到transform的改动, 比如位置, 缩放等, 在默认情况下我们就不 ...

  3. 【unity实践记录】动画层的顺序和混合模式Override/Additive

    手册上关于层顺序的介绍基本没有,只是一个不明所以的Q&A一带而过: 层的排序是否重要? 是的.层的优先级是按顺序从上到下的.层设置为 override 将始终覆盖先前的层(如果层有遮罩,则基于 ...

  4. Unity通过Animator获取动画clip时长

    ///获取动画状态机animator的动画clip的播放持续时长 public static float GetClipLength(Animator animator, string clipNam ...

  5. unity新动画系统之动画层和动画遮罩

    这一节来说说unity动画层layer和遮罩avatarMask: weight 权重,对应着这一层动画在所有层动画中所占的比例.以上图来说明,new layer中的weight为0,模型的动画效果就 ...

  6. Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用

    Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用 目录 Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Ava ...

  7. Unity -- Animation(旧版动画组件)和Animator(新版动画器组件)

    旧版animation动画器组件 如果想让一个游戏物体具有动画表现的话,我们需要给这个游戏物体挂载动画组件 和音频组件视频组件一样,如果想在游戏对象上播放动画效果的话我们需要挂载一个动画组件,然后再给 ...

  8. Unity(动画层 IK动画)

    动画层 关于动画层的使用        →        用于融合不同部位的动画 动画层设置 Weight(权重)        →        该层动画执行的比例 Mask(遮罩)        ...

  9. 2022-07-06 Unity核心9——3D动画

    文章目录 一.3D 动画的使用 二.动画分层和遮罩 三.动画 1D 混合 四.动画 2D 混合 五.动画子状态机 六.动画 IK 控制 七.动画目标匹配 八.状态机行为脚本 九.状态机复用 十.角色控 ...

最新文章

  1. KD树是什么? 为什么要用KD树? KD树怎么用? KD树和KNN的关联是什么?
  2. IDC:预计全球人工智能支出将在四年内翻一番
  3. mega_[MEGA DEAL]完整的Android开发人员课程–构建14个应用程序(91%折扣)
  4. Centos-Server-LNMP整合---源安装
  5. 在线网站原型设计工具Cacoo
  6. 修改Apache的默认站点目录的方法,需要的朋友可以参考下
  7. excel怎么启用宏_EXCEL制作的小升初毕业生登记表,全自动填充,包括照片
  8. Android之jni出现JNIEnv has no member named ‘GetMehtodID‘解决办法
  9. 天猫APP也可以点外卖了!饿了么接入天猫App
  10. 2018-3-7 色彩的一些知识
  11. JAVA程序设计教程-第2版-雍俊海 介绍以及 PDF+源代码+ppt 下载链接
  12. 二级域名 免费+免备案
  13. word2013免费版下载和安装
  14. 杭州端点科技java,端点实习面试(一面)
  15. Spark 基础教程
  16. 通讯录——java课程设计
  17. Chapter 1 复杂度分析和递归分析
  18. Mac设置隐藏程序坞响应时间有一秒延迟
  19. onlyoffice-api
  20. android编程高级教程 pdf,Android多媒体开发高级编程

热门文章

  1. 热搜第一除了本科生月均5千工资,还告诉了我们什么?
  2. STM32笔记 (十三)定时器输入捕获(利用定时器捕获高电平时间)
  3. VOT与OTB评价指标
  4. NFC模块方案,轻松实现NFC通讯
  5. 数据吞吐高达 21 亿条!实时计算在贝壳找房的应用实践
  6. 队列--参考源码(转)
  7. python发送邮件 SMTP socks代理
  8. 肥猪流码农的逆袭之路(1)
  9. 极光IM系列之java后台集成
  10. 数加加众包深耕AI第8年,苹果加码人工智能和机器学习