实现人物动画帧的导入以及左右移动,了解了动画帧和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来获取横轴的方向,同时游戏对象绑定的组件也要注意改参数测试