Unity——Animator动画分层
前言:
现在的很多游戏都有这样的一种设计,在游戏的战场中,英雄有一套战斗动画;而在游戏的主城,又有英雄的展示,展示另外一套动画。
但是,在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动画分层相关推荐
- unity animator动画融合时的上下半身速度分离控制
游戏中要实现一边走一边攻击, 移动还分八方向的,所以使用了半身混合. Animator 半身混合的处理,可以另外看资料. 简单来说 就是分2层:0层 播放基础移动动作,比如"Run&qu ...
- unity animator动画学习(1)
人物模型: 导入人物模型骨架后,选择Rig,选择动画类型为 Humanoid,再选择生成Avator的方式.可以从已经建立好的avator开始,因为并没有建立过avator,所以笔者这里选择通过此模型 ...
- unity animator动画播放完毕后执行
void Update(){ AnimatorStateInfo info =animator.GetCurrentAnimatorStateInfo(0); if (info.normalizedT ...
- Unity Animator 动画没切换
恶魔射手(Survival Shooter)项目,有两个动画,一个是静止时的Idle,一个是走路时候的Move,如下图↓ 设置好动画状态机后发现按方向键后还是Idle,没反应,而一直按着方向键后呢又动 ...
- Unity基础——动画编辑Animations、Animator
Unity基础--动画编辑Animations.Animator 2014-01-10 20:08:32| 分类: Unity3D自学笔记 | 标签:unity 指南 动画 animatio ...
- Unity动画知识之二:Animator动画状态机
文/拉撒路 上次我们讲过 Unity游戏动画从入门到住院 ,今天我们来讲一下动画状态机. 好了,现在我们已经成功的导入了动画.接下来要玩的东西就很装13啦.因为大部分动画师是用不到这家伙的,需要掌握这 ...
- Unity中的Animator动画详解
Unity中的Animator动画详解 Animator动画导入 Animator动画详解 动画类型选择 Rig面板属性 Mode面板属性 Animation面板属性 动画片段 控制使用 Animat ...
- unity 对Animator动画系统的研究
unity的新动画系统叫Mecanim,使用Animator来取代旧系统Animation,按Unity文档的惯例:知识点主要分2部分:unity manual和unity script,读者可以边看 ...
- Unity用户手册-动画系统Animator
动画系统Animator 动画类型 Legacy 基础的动画 Generic 动画,包含动画状态机 Humanoid 人形动画,包含动画状态机 Update Mode Normal 动画播放将与Upd ...
最新文章
- 自适应中值滤波用于超声图像降噪
- 尼日利亚学生开发者,用阿里云PAI打造了卡通头像神器
- 什么能在main()函数之前或之后执行
- SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
- JDK 13中的JEP 355文本块
- pandas用均值填充nan_python – 如何用pandas中的滚动平均值填充nan值
- 2011年01月18日
- Vuejs vm对象详解
- linux 运维安全,运维安全有哪些分类呢?linux学习线路图
- API接口自动化测试框架搭建(二)-详细设计框架设计
- Python 内置函数详解,进阶必备
- 【转载】Aquanaut:水下变形金刚
- VS2017配置PCL1.9(win10环境)
- JavaScript replace() 方法转换时间数据中的“-”和“/”
- 网桥,交换机,hub,路由器到底是什么,怎么区别
- ATM (Asynchronous Transfer Mode)异步传输模式
- HyperLedger Fabric - 超级账本(2.2)启动网络 - 手动
- 人们愿意购买亲手摸过的商品
- 软考的高级职称系统架构设计师值得花时间投入吗?
- redis 查看list列表
热门文章
- 简单制作扑克牌和洗牌
- 皮安电流放大器的放大问题
- async、await详解
- HTML标签的role作用
- JSON 学习5——JSON 数组
- SSM报错“java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener”
- 医院营销 民营医院企划的内涵及形式与内容
- 图文多模态模型CLIP
- 摩根大通CEO吉米·戴蒙质疑比特币2100万枚上限的道理和错误
- study和student的音节怎么划分?