动画与动画控制器
示例1:
创建Animator对动画控制器进行统一管理,在Gris中创建Animator组件,并对其中的Controller属性进行赋值
在进行动画创作前,需先将图片的Texture Type属性改为Sprite(2D and UI)
再将一系列图片拖入Gris物体中即可
通过脚本使Gris跑动
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NO9_Animator : MonoBehaviour
{
public Animator animator;
// Start is called before the first frame update
void Start()
{
animator.Play("Gris_Run");
//animator.speed = 5;//设置动画播放速度
}
// Update is called once per frame
void Update()
{
}
}
Animator中可以创建的数据类型(float、int、Bool、Trigger)
可以通过创建以上数据类型对动作与动作之间转换进行控制
可以通过以下函数对上面数据类型进行赋值
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NO9_Animator : MonoBehaviour
{
public Animator animator;
// Start is called before the first frame update
void Start()
{
animator.Play("Gris_Run");
//animator.speed = 5;//设置动画播放速度
animator.SetFloat("Speed",1);
print("Speed的值为"+ animator.GetFloat("Speed"));
}
// Update is called once per frame
void Update()
{
}
}
注:后面所输入的参数名必须一致
示例2:动画之间的转换
现在将两个动画连接起来
如上图所示,右边的界面为两个动画之间连接的属性
其中Exittime是用来控制两个动画转换的过渡时间,众所周知,人从走到跑的是要经历速度由快到慢这一过程,而将Exittime设为0就会使动画之间无过渡时间,直接进行动画的转换
CrossFade和CrossFadeInFixedTime
CrossFade是按照动画的自身时间进行混合。如果动画10秒,混合持续时间0.2,会在2秒后混合完成
CrossFadeInFixedTime是按照实际时间进行混合。如果动画10秒,混合持续时间0.2,会在0.2秒后混合完成