2D游戏入门——小狐狸系列(六)
作者:互联网
Session06:动画效果Animation
添加动画效果
这节课我们来为人物添加动画效果
先为人物创建一个Animator组件,并创建一个Animator Controller,将它拖到Animator组件的对应位置。
然后来创建具体的动画,在Window->Animation下找到Animation并打开:
这是一个和flash一样的东西,点击新建一个clip,叫做idle,作为闲置状态的动画
然后将素材中的图片拖到右边的时间轴那里,此时点击播放,会发现人物的运动太快了,有两种方法可以调节速度,一种是选中所有帧,将它拉长,另一种是直接修改samples的值,也就是取样的频率,这里选择第二种方式,将samples修改为10
如果发现没有samples的可以点击右上角的三个点来添加。
这样动画速度就正常了。
按照同样的方法为人物添加run的动画。
设置动画切换
我们现在有两种动画状态,idle和run,需要在这两种状态之间切换,有很多方法可以实现,这里我们选择通过人物“速度”的判断来实现
Window->Animation下找到Animator并打开
这里已经有我们添加的两个动画idle和run,分别选择它们,右键选择make transition,也就是创建过渡
在左上角的parameters那里添加一个float类型的参数running
选中idel->run的transition箭头,在右侧的Inspector修改参数,不需要exit time,取消勾选,也不需要transition duration也就是过渡时间,我们希望它直接切换状态,然后新增一个condition,当running值大于0.1时切换动画为run。
同样对run->idle也进行相应的修改
好了,那么怎么将running参数对应到人物的速度呢?这就需要在PlayController中设置Animator的相关参数了。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Animator animator;
// Update is called once per frame
void Update()
{
Movement();
}
void Movement()
{
//...省略
//角色移动
if (horizontalAxis != 0)
{
rb.velocity = new Vector2(horizontalAxis * speed * Time.fixedDeltaTime, rb.velocity.y);
//控制运动动画
animator.SetFloat("running", Mathf.Abs(faceDirection));
}
//...省略
}
}
获得Animator组件,设置float类型的参数"running"的值(可以选择通过id或name的方式来获取变量)为faceDirection的绝对值(也就是只有0和1),当0时人物处于idle状态,当1时run。
标签:动画,run,入门,狐狸,running,2D,idle,添加,Animator 来源: https://blog.csdn.net/Ricardo_M_Hu/article/details/121189260