1、Animator组件
Controller:对应的Project中AnimatorController
Avatar:(翻译为阿凡达.....-_-!)模型中的一个元素(这样的图标),调节控制模型的骨骼之类的参数
Apply Root Motion:勾选为通过任务动画控制角色的移动,否则通过脚本控制移动
Update Mode:模型更新的方式
Normal:无
Animate Physics:动画涉及物理
Unscaled Time:不受Time.timeScale的影响
Culling Mode:动画消隐的方式
Always Animate:一直动画
Cull Update Transforms:消除位置更新
Cull Completely:完全消除
2、Animator面板
Layers:播放动画控制的层,名字可修改,最上层为优先播放
Weight:播放动画的等级,0为不播放,1为完全播放(可以理解为播放幅度和大小)
使用代码animator.SetLayerWeight(参数1,参数2);可以控制每个层的播放等级,其中参数1为层,默认第一个层为0,下面顺序排列,参数2为播放等级,0-1之间的float数值
Mask:不播放动画的遮罩,对应为Project中的AvatarMask(这个太有意思了!!)同时播放两个动画时屏蔽当前层级身体某个部位,Humanoid:点击变红之后该区域不收骨骼动画影响
Blending:
Sync:
Timing:
Source Layer:
IK Pass:
Parameters:控制动画过度的条件
四种类型:float(Greater:大于,Less:小于)、int(Greater:大于,Less:小于,Equals:等于,NotEquals:不等于)、bool、trigger
Layer面板:
Entry:状态机入口
Any State:
Exit:回到入口
右键空白处:
Create State:创建State
Empty:空的State
From Selected Clip:
From New Blend Tree:动画混合树
Create Sub-State Machine:
Paste:粘贴
Copy current StateMachine:
State右键:
Make Transition:指向下一个状态
Set as Layer Default State:设置为第一个状态
Copy:复制
Create new Blend Tree in State:
Delete:删除
State的Inspector属性:
Motion:动画文件
Speed:动画播放的速度
Multiplier:播放速度的乘数,对应Parameters的float类型的值乘以播放速度
Mirror:镜像
Cycle Offset:周期偏移
Foot IK:
Write Defaults:
Transitions:切换到下一个状态的动画过度
Solo:绿色,勾选则为优先转移状态
Mute:红色,勾选则为不转移状态(若同时勾选两项则视为只勾选了Mute)
has exit time:勾选为等待播放完毕进入下一个状态,不勾选则满足条件进入第二个状态。
Settings
ExitTime:进入下一个状态的时间
FixedDuration:
Transition Duration(%):过度动画的时间
Transition Offset:下一个状态动画开始的点,最小值为0(表示过度的开始为第二个动画的第一帧)
Interruption Source:
None:
Current State:
Next State:
Current State Then Next State:
Next State Then Current State:
Orderde Interruption:
Conditions:状态切换的条件,对应Parameters的参数
代码实例:
using UnityEngine;
using System.Collections;
public class AnimatorContro: MonoBehaviour {
//有Animator组件的GameObject
private Animator animator;
void Start() {
animator = GetComponent<Animator>();
}
void Update() {
if (Input.GetMouseButtonDown(0)) {
//按下鼠标左键时Parameters的New Bool参数值变为true
animator.SetBool("New Bool", true);
}
}
}