ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-07 11:34:37  阅读:334  来源: 互联网

标签:动画 run 入门 狐狸 running 2D idle 添加 Animator


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有