2.11 动画系统基础

来源:互联网 发布:软件系统分析 编辑:程序博客网 时间:2024/06/03 22:05
day11 动画系统基础
一,Mecanim 动画系统
1,动画系统的优点
a,Mecanim 功能强大的动画系统
b,方便的实现人型动画的设置和重用
c,方便的实现动画剪辑的设置
d, 可视化的动画控制界面
e, 对动画播放的精确控制

2,动画类型和动画控制
动画类型分为四种
● None:无任何动画
● Legacy:旧版Animation动画
● Generic:一般动画(非人形动画)
● Humanoid:人形动画


二,Animator
1,在 Project 视 图中点击 Create 然后选择 Animator Controller;
2, 重命名后,双击新建的 Animator Controller 可以打开 Animator 视图;
3,只需要把动画剪辑拖入 Animator 视图即可;
常用方法:
SetFloat/GetFloat 设置/获取float类型参数的值
SetTrigger 设置一次触发
GetCurrentAnimatorStateInfo 获取某一层的状态机信息
IsInTransition 判断是否在执行动画过渡
StringToHash 返回状态机所代表的Hash值

主要代码:
1,获取组件
Animator ani;
void Start()
{ani=GetComponent<Animator>(); }
2,设置变量
//方法同上
ani.SetFloat("Speed", ver);
三,BlendTree 融合树
附 ,自写人物行动控制器
Animator ani;
void Start () {
ani = GetComponent<Animator>();
}
void Update () {
Move();
}
void Move()
{
float ver = Input.GetAxis("Vertical");
if (Input.GetKey(KeyCode.LeftShift) && ver>0.1f)
{
ani.SetFloat("Speed", ver + 1);
}
else
{
ani.SetFloat("Speed", ver);
}
if (Input.GetKey(KeyCode.A))
{
transform.rotation *= Quaternion.AngleAxis(-5, new Vector3(0, 1, 0));
}
if (Input.GetKey(KeyCode.D))
{
transform.rotation *= Quaternion.AngleAxis(5, new Vector3(0, 1, 0));
}
}
原创粉丝点击