[Unity2D]实现人物动画帧的导入以及左右移动 | 您所在的位置:网站首页 › 2d角色动作素材怎么做 › [Unity2D]实现人物动画帧的导入以及左右移动 |
学习目标:
实现人物动画帧的导入以及左右移动,了解了动画帧和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 实验室设备网 版权所有 |