上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件
创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码
using UnityEngine;
public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour
{
private Rigidbody2D rb; // 定义一个私有变量rb,类型为Rigidbody2D,用于存储刚体组件的引用
// Start方法在脚本实例化后、第一帧更新前被调用
void Start()
{
// 获取并赋值当前GameObject上的Rigidbody2D组件到rb变量
rb = GetComponent<Rigidbody2D>();
}
// Update方法每帧调用一次
void Update()
{
// 获取水平方向的输入值,不进行平滑处理
float Level = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(Level * 5f, rb.velocity.y); // 设置rb的水平速度为dirX乘以5,垂直速度保持不变
if (Input.GetButtonDown("Jump")) // 如果按下跳跃按钮
{
rb.velocity = new Vector2(rb.velocity.x, 5f); // 设置rb的垂直速度为5,水平速度保持不变
}
}
}
ctrl + S 保存一下,然后我们就可以回到我们的Unity编辑器了;
运行一下,我们就可以用 a d 键控制人物的左右移动,按下空格键就可以实现人物的跳跃。
此时,我们就可以进行下一步了,实现人物的动画
首先,我们先实现一下人物静止时的动画:
找到我们人物的那个文件夹,右键鼠标,然后你们看图吧
创建好后取个名字,我取的是Idle,大家可以和我一样,把我们刚刚创建好的文件拖拽到我们页面左边的Player里面,此时就会新创建一个Animator(如果和我一样,大家就是对的)
然后点击我们上面刚才自己创建的Idle,就会出现如下的界面,然后我们点击Player选中它
此时,哎!它就亮了!!!我们把人物文件夹里面的Idle打开,会看到好多张照片,我们点击第一张,然后按住Shift键,再点击最后一张,一起把每一帧照片拖拽到这个页面里
的确能发现人物动了,然后呢只动了一下,这是因为:我们没有设置循环播放!
当我们点击Idle的时候,界面右边会出现
把那个Loop Time选中,我们再运行一下看看!
然后有的人啊,就觉得太快了,那我们就把速度调慢,在这里奥,旧版本会有Sample显示,但是新版本没有,我的22版本都没有,所以我们需要把这个找到
把这个调整到20我们再试试看!这个时候应该就差不多了吧,大家想调多少就调多少吧
接下来我们做人物左右移动和跳起的动画,跟上面一样,我们先创建Animation(跟创建idle步骤一样,没区别),同样也拖拽到我们Player上面,然后点击新创建的,点击Player让Animation亮起来,这个时候需要注意了
我们需要在这里面选中Move(Move是我刚刚创建的Animation),这个时候我们改变的属性就是Move里面的了喔,嗯嗯就是这样。
把人物移动的动画帧拽进去,我这个文件夹里面的是Run
同理,Jump和Fall(跳起和下落)自己创建吧(别忘了循环播放!),这个时候我们还不能在运行的时候实现这些功能
下一博客,将为大家展示人物跳起,下落,左右移动时候的动画