unity学习36:老版的动画 Animation
目录
1 unity关于动画的分为两种
2 旧版动画 Animation
2.1 添加Animation组件
2.2 对应的动画clip
2.3 动画的属性
3 如何做出一个简单动画
3.1 打开老的动画编辑器
3.2 Animation 窗口,拖到下面的game窗口一起
3.3 新建动画
3.4 动画编辑器
3.4.1 时间单位秒
3.4.2 添加动画属性
3.5 关键帧里修改属性
3.6 第一个移动且缩放动画
3.7 添加关键帧
3.8 录制帧
3.9 点击动画文件本身,可以修改动画的播放方式 wrap mode
3.10 切换左下角的 简报dopesheet / 曲线curves
4 代码控制动画
4.2 对应代码
4.3 遇到报错和解决
4.3 实测OK的
1 unity关于动画的分为两种
- 旧版,动画 : Animation
- 新版,动画(编辑)器:Animator
2 旧版动画 Animation
2.1 添加Animation组件
- 新建一个gameObject,添加新的component
2.2 对应的动画clip
- Animation 需要对应一个 Animation clip ,这个和 audio video都一样
- Animations 展开,就是对应多个 动画组成的list
2.3 动画的属性
- play Automatically //是否自动播放
- Animate Pyhsics //动画的驱动方式,勾选后,则是物理
- culling Type:
- always Animate
- based on renderers //基于渲染才播放,看不到不渲染的时候不播放
3 如何做出一个简单动画
3.1 打开老的动画编辑器
3.2 Animation 窗口,拖到下面的game窗口一起
- 打开的Animation 窗口
- 拖到下面的game窗口一起
3.3 新建动画
- 新建动画
- 新建的动画,默认会在Asset 文件夹下,也会出现在 编辑器 project/Assets下
3.4 动画编辑器
3.4.1 时间单位秒
- 上面有一个时间轴,
- 上面是时间,单位秒 float
- 比如 0.0 秒,0.5秒,1.00秒
- 鼠标滚轮滚动,可以缩放时间轴
3.4.2 添加动画属性
3.5 关键帧里修改属性
- 创建动画
- 会自动生成2个关键帧。因为一个动画至少需要2个关键帧
- 动画有很多帧,参见经典的电影帧数,1秒24帧。现在30-60也不算啥了
- 但是做动画只能做少数帧,叫关键帧
- 按住时间轴的竖白线,拖动到另外一个时间,设置第2个关键帧
3.6 第一个移动且缩放动画
3.7 添加关键帧
- 添加关键帧
- 可以控制动画变化,节奏等,自己悟吧
- 如果删除,就是选中帧后delete 可删除
3.8 录制帧
- 先点录制,
- 然后,拖着关键帧的白线,到想创建新帧的地方
- 然后这时候再拖动 关联动画的物体-cube,做你想做的变化
- 就会自动产生关键帧
- 也可以继续对关键帧的数值做修改
3.9 点击动画文件本身,可以修改动画的播放方式 wrap mode
wrap mode
- once //只播放1次
- loop //循环
- clamp forever
- ping pong //来回循环
3.10 切换左下角的 简报dopesheet / 曲线curves
- 简报dopesheet
- 曲线curves
4 代码控制动画
4.1 GetComponent<Animation>().Play()
- //如果有个动画,默认播放当前的动画,我这实测不行
- //GetComponent<Animation>().Play();
- //方法也支持重载,直接指定某个动画名,OK的
- GetComponent<Animation>().Play("change1");
4.2 对应代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestAnimation : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
{
//如果有个动画,默认播放当前的动画,我这实测不行
//方法也支持重载,直接指定某个动画名,OK的
GetComponent<Animation>().Play("change1");
//GetComponent<Animation>().Play();
}
}
}
4.3 遇到报错和解决
- 如果报这个错误
- 动画clip需要至少挂载再 Animations 或者Animation里,二者之一