前言:
 现在的很多游戏都有这样的一种设计,在游戏的战场中,英雄有一套战斗动画;而在游戏的主城,又有英雄的展示,展示另外一套动画。
 但是,在Unity中,一个prefab只能有一个动画状态机,我们需要在动画机中使用动画分层才能实现这样的需求。


动画机:
 创建一个Battle层,用于战斗中的动画;再创建一个Show层,用于展示的动画;最后创建一个Base层,但是Base层内部不设置任何动画并将Base层置顶(因为Unity会把置顶的动画机层级的权重默认设置为1且不可修改,如果置顶Battle或者Show层,可能出现两个层级的动画同时播放的问题,放一个空的Base层,以防止冲突)


代码如下:
 我们只需要在代码中获取层级,并设置权重就可以设置当前的动画机层级了,使用的接口如下:

//获取指定名字的动画层级的index(如果动画机中没有这个层级,此方法会返回-1)
animator.GetLayerIndex(string layerName);//设置指定index的动画层级的权重(weight的范围为0~1)
animator.SetLayerWeight(int layerIndex, float weight)

 示例如下:

public void SetAnimatorLayer(bool isBattle)
{animator = GetComponent<Animator>();if(animator == null){return;}int baseLayer = animator.GetLayerIndex("Base");int battleLayer = animator.GetLayerIndex("Battle");int showLayer = animator.GetLayerIndex("Show");if(isBattle){animator.SetLayerWeight(baseLayer, 0f);animator.SetLayerWeight(battleLayer, 1f);animator.SetLayerWeight(showLayer, 0f);}else{animator.SetLayerWeight(baseLayer, 0f);animator.SetLayerWeight(battleLayer, 0f);animator.SetLayerWeight(showLayer, 1f);}
}

Unity——Animator动画分层相关推荐

  1. unity animator动画融合时的上下半身速度分离控制

    游戏中要实现一边走一边攻击, 移动还分八方向的,所以使用了半身混合. Animator 半身混合的处理,可以另外看资料.   简单来说 就是分2层:0层 播放基础移动动作,比如"Run&qu ...

  2. unity animator动画学习(1)

    人物模型: 导入人物模型骨架后,选择Rig,选择动画类型为 Humanoid,再选择生成Avator的方式.可以从已经建立好的avator开始,因为并没有建立过avator,所以笔者这里选择通过此模型 ...

  3. unity animator动画播放完毕后执行

    void Update(){ AnimatorStateInfo info =animator.GetCurrentAnimatorStateInfo(0); if (info.normalizedT ...

  4. Unity Animator 动画没切换

    恶魔射手(Survival Shooter)项目,有两个动画,一个是静止时的Idle,一个是走路时候的Move,如下图↓ 设置好动画状态机后发现按方向键后还是Idle,没反应,而一直按着方向键后呢又动 ...

  5. Unity基础——动画编辑Animations、Animator

    Unity基础--动画编辑Animations.Animator 2014-01-10 20:08:32|  分类: Unity3D自学笔记 |  标签:unity  指南  动画  animatio ...

  6. Unity动画知识之二:Animator动画状态机

    文/拉撒路 上次我们讲过 Unity游戏动画从入门到住院 ,今天我们来讲一下动画状态机. 好了,现在我们已经成功的导入了动画.接下来要玩的东西就很装13啦.因为大部分动画师是用不到这家伙的,需要掌握这 ...

  7. Unity中的Animator动画详解

    Unity中的Animator动画详解 Animator动画导入 Animator动画详解 动画类型选择 Rig面板属性 Mode面板属性 Animation面板属性 动画片段 控制使用 Animat ...

  8. unity 对Animator动画系统的研究

    unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看 ...

  9. Unity用户手册-动画系统Animator

    动画系统Animator 动画类型 Legacy 基础的动画 Generic 动画,包含动画状态机 Humanoid 人形动画,包含动画状态机 Update Mode Normal 动画播放将与Upd ...

最新文章

  1. 自适应中值滤波用于超声图像降噪
  2. 尼日利亚学生开发者,用阿里云PAI打造了卡通头像神器
  3. 什么能在main()函数之前或之后执行
  4. SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
  5. JDK 13中的JEP 355文本块
  6. pandas用均值填充nan_python – 如何用pandas中的滚动平均值填充nan值
  7. 2011年01月18日
  8. Vuejs vm对象详解
  9. linux 运维安全,运维安全有哪些分类呢?linux学习线路图
  10. API接口自动化测试框架搭建(二)-详细设计框架设计
  11. Python 内置函数详解,进阶必备
  12. 【转载】Aquanaut:水下变形金刚
  13. VS2017配置PCL1.9(win10环境)
  14. JavaScript replace() 方法转换时间数据中的“-”和“/”
  15. 网桥,交换机,hub,路由器到底是什么,怎么区别
  16. ATM (Asynchronous Transfer Mode)异步传输模式
  17. HyperLedger Fabric - 超级账本(2.2)启动网络 - 手动
  18. 人们愿意购买亲手摸过的商品
  19. 软考的高级职称系统架构设计师值得花时间投入吗?
  20. redis 查看list列表

热门文章

  1. 简单制作扑克牌和洗牌
  2. 皮安电流放大器的放大问题
  3. async、await详解
  4. HTML标签的role作用
  5. JSON 学习5——JSON 数组
  6. SSM报错“java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener”
  7. 医院营销 民营医院企划的内涵及形式与内容
  8. 图文多模态模型CLIP
  9. 摩根大通CEO吉米·戴蒙质疑比特币2100万枚上限的道理和错误
  10. study和student的音节怎么划分?