其他分享
首页 > 其他分享> > 2D游戏入门——小狐狸系列(六)

2D游戏入门——小狐狸系列(六)

作者:互联网

Session06:动画效果Animation

添加动画效果

这节课我们来为人物添加动画效果

先为人物创建一个Animator组件,并创建一个Animator Controller,将它拖到Animator组件的对应位置。

image-20211022144048527

然后来创建具体的动画,在Window->Animation下找到Animation并打开:

image-20211022144157499

这是一个和flash一样的东西,点击新建一个clip,叫做idle,作为闲置状态的动画

image-20211022144249937

然后将素材中的图片拖到右边的时间轴那里,此时点击播放,会发现人物的运动太快了,有两种方法可以调节速度,一种是选中所有帧,将它拉长,另一种是直接修改samples的值,也就是取样的频率,这里选择第二种方式,将samples修改为10

image-20211022144513410

如果发现没有samples的可以点击右上角的三个点来添加。

这样动画速度就正常了。

按照同样的方法为人物添加run的动画。

设置动画切换

我们现在有两种动画状态,idle和run,需要在这两种状态之间切换,有很多方法可以实现,这里我们选择通过人物“速度”的判断来实现

Window->Animation下找到Animator并打开

image-20211022145532310

这里已经有我们添加的两个动画idle和run,分别选择它们,右键选择make transition,也就是创建过渡

image-20211022145655557

在左上角的parameters那里添加一个float类型的参数running

image-20211022141535245

选中idel->run的transition箭头,在右侧的Inspector修改参数,不需要exit time,取消勾选,也不需要transition duration也就是过渡时间,我们希望它直接切换状态,然后新增一个condition,当running值大于0.1时切换动画为run。

image-20211022141632245

同样对run->idle也进行相应的修改

image-20211022141820129

好了,那么怎么将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