您的位置:首页 > 移动开发 > Unity3D

Unity_Legacy动画系统_014

2017-07-23 21:35 274 查看

Legacy动画系统

Unity3D的Mecanim动画系统是非常强大的,而且作为Unity推荐的动画系统,其未来会完全代替老的一套动画系统,即Legacy动画系统。目前的情况是Mecanim与Legacy两套动画系统同时共存,但是并不是说Legacy动画系统就没有任何价值了,作为Unity4.0以前使用的动画系统,我认为还是很有必要去了解和学习的,所以就有了这篇笔记。

Unity自带的资源包里面的Charactor Controller里面包含的第三人称控制器就所用的动画就是Legacy动画。选择菜单“Assets”->“Import Package”->“Character Controller”

为基本物体创建插值动画

首先在Assets面板中创建一个Aniamtion,命名为Move(可以定义成别的)

图000:



然后创建一个基本的游戏对象,添加组件Animation组件



并将Aniamtion组件中的Aniamtion属性设置成Move,size设置为1,Element设置为Move。

接着选中基本的游戏对象,在菜单栏中Window中选择Animation



或者使用快捷键(Ctrl+6),就会打开一个新的面板Animation面板



选择对游戏对象操作的属性就可以编辑动画了。

编辑完动画后,关闭Aniamtion面板我们会发现运行场景并没有效果,还有一条警告:The AnimationClip ‘Move’ used by the Animation component ‘Cube’ must be marked as Legacy.

还有一条信息:Default clip could not be found in attached animations list.

那是因为我们需要讲动画标记为Legacy才可以,请看下面的操作

选中Move动画





动画系统的复用

一个动画我们可以在多个游戏对象上使用,这就是动画的复用

只需要游戏对象身上添加Aniamtion组件

同时设置Animation为添加AniamtionClip就可以了

动画与其他组件配合使用

动画可以在Light组件上一起使用制作闪烁的灯光

可以和相机一同使用制作场景的漫游

脚本与Legacy动画系统的结合使用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Control: MonoBehaviour {
Animation anim;
// Use this for initialization
void Start () {
GameObject obj = GameObject.Find("Cube");
anim = obj.GetComponent<Animation>();

}

// Update is called once per frame
void Update () {
//执行Move动画
if (Input.GetKeyDown(KeyCode.W))
{
anim.Play("Move");
}
//融合动画
if (Input.GetKeyDown(KeyCode.S))
{
anim.CrossFade("Rotate");

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: