[Unity2D]实现人物动画帧的导入以及左右移动 您所在的位置:网站首页 2d角色动作素材怎么做 [Unity2D]实现人物动画帧的导入以及左右移动

[Unity2D]实现人物动画帧的导入以及左右移动

2024-06-30 20:15| 来源: 网络整理| 查看: 265

学习目标:

实现人物动画帧的导入以及左右移动,了解了动画帧和Animation系统的关系

学习参考:

参考视频:秦无邪OvO的个人空间_哔哩哔哩_Bilibili

绘制像素工具:[资源]Aseprite 1.2.8【aseprite吧】_百度贴吧

学习内容:

首先我们要画好一个人物应该有的动画,这里我是按着空洞骑士来画的,目前画了战力移动,普通攻击,跳跃,二段跳,掉落,回血,冲刺,黑暗冲刺,剑技。后续还会接着画的,然后我们在File->Export Spirit Sheet中选择Best fit for texture,再勾上Output File选择文件名和格式即可。

这里我用的像素点画布是64*32,

导入Unity后,接下来就是先切割这张Sheet

然后我们把第一张图拖进来,接着就是做动画

动画就直接根据你在Aseprite做时贴的Tag,比如Walk的Tag,那就把3,4,5张一起拖入给Player的对象

像我这样分别给每个动画命名

然后可以在Animation面板里测试一下你的动画对了没(以ATTACK为例)

 接下来实现一下人物的左右移动,给Player游戏对象创建一个C#脚本“PlayerController”

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class PlayerController : MonoBehaviour {     public float walkSpeed;    

    private Animator myAnim;     private BoxCollider2D boxcollid2D;     private Rigidbody2D rb2D;

    private bool isFlip = false;     void Start()     {         myAnim = GetComponent();         boxcollid2D = GetComponent();         rb2D = GetComponent();     }

    // Update is called once per frame     void Update()     {         Walk();     }

    void Walk()     {         float moveDir = Input.GetAxis("Horizontal");         Vector2 playerVel = new Vector2(moveDir * walkSpeed, rb2D.velocity.y);         rb2D.velocity = playerVel;     } }

 接着我们还要为Player添加几个组件,Righbody2D,锁Z轴持续检测改一下

BoxCollider2D(检测地面接触),

以及

 然后再创建一个地面,给它的Layer设置为Ground(自己创建一个)

 然后他就可以左右移动了 

学习产出:

根据动画帧来做动画,代码中用Input.GetAxis来获取横轴的方向,同时游戏对象绑定的组件也要注意改参数测试



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有