一、Animator组件
- Controller:动画控制器Animator Controller;
- Avatar:骨骼文件,仅当GameObject是人形角色时,才定义Avatar;
- Apply Root Motion:绑定该组件的GameObject的位置是否可以由动画进行改变(如果存在改变位移的动画);
- Update Mode:更新模式
-
- Normal:表示使用Update进行更新;
- Animate Physics:表示使用FixUpdate进行更新(一般用在和物体有交互的情况下);
- Unscale Time:表示无视timeScale进行更新(一般用在UI动画中)。
- Culling Mode:剔除模式:
-
- Always Animate:即使摄像机看不见也要进行动画播放的更新
- Cull Update Transform:当摄像机看不见时,停止动画播放,但是位置会继续更新
- Cull Completely:表示摄像机看不见时,停止动画的所有更新。
二、实现人物在走路的同时挥手
- 下载模型资源:提取码:b7i6;
- 导入到Unity中,将人物模型拖入场景,添加Animator组件(如果没有的话);
- 创建Animator Controller,赋给Animator组件;
- 打开Animator编辑器
- Weight:权重,默认的层的权重为1;当新建层的权重为0时,该层的动画不会播放,设置成1会全部播放,0~1则部分播放;
- Mask:遮罩,Avatar Mask可以用来实现丢弃一些动画数据,只允许某些部位的动画起作用。很经典的例子是一边播Run、Walk、Idle动画时一边挥手。
- Blending:动画混合方式:
-
- Override:覆盖,表示当前层的动画会覆盖掉其它层的动画;
- Additive:添加,表示当前层的动画会添加到其它层。
- Sync:同步层,可以同步某一层的状态。
- IK Pass:是否启动IK动画。
- 将走路动画拖入Animator面板(走路动画自带位移),运行Unity,我们可以看到人物在向前走。
- 新建Layer层WaveLayer,将挥手动画拖入Animator面板,设置该层Weight=1,Blending为Additive,运行Unity,我们可以看到人物在向前走的同时还在挥手。