前言
那么这次文章,来编写关于主角的移动和奔跑功能;同样,如前面的文章所述,因编写教程写了很多遍,本文章只写出关键部分;想了解详细的教程,在b站搜索本人录制的2d游戏开发-unity实现系列视频教程
功能说明
本次文章主要实现三个,移动、动画制作和按shift加方向键加速。
unity制作动画
这里只列出需要的动画,不教授如何制作
初始状态动画


向上静止动画


向下静止动画


向左静止动画


向右静止动画


向上行走动画


向下行走动画


向左行走动画


向右行走动画


动画控制
为了控制动画的切换和播放,需要定义变量控制动画的播放,变量名称和动画同名。
在这里我所有变量都为bool类型,只有值true和false
然后在Animator里串联动画关系
关系图如下

faceLeft、faceRight、faceDown、faceUp的连线都设置为各自名称变量为true
如faceLeft设置faceLeft变量为true


lefting、righting、uping和downing的连线关系设置为初始状态的变量为false,各自名称的变量为true,同时其他ing的为false
如lefting:


关键代码
说完动画之后,其他就没有什么好说的了,现在直接贴出代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// 获取角色得刚体
private Rigidbody2D playerRid;
// 实例化二维向量接收角色坐标
Vector2 playerVector2 = new Vector2();
// 获取动画组件
private Animator playerAnimator;
// 定义速度
public float speed = 200;
void Start()
{
playerRid = GetComponent<Rigidbody2D>();
playerAnimator = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
// 变更动画
ChangePlayerAnim();
}
private void FixedUpdate()
{
// 角色移动
playerMove();
}
// 移动方法
void playerMove() {
// 获取水平方向输入坐标
playerVector2.x = Input.GetAxisRaw("Horizontal"

本文详细介绍了如何在Unity中为游戏角色添加移动控制、基础动画制作,并实现按Shift键加速功能。通过示例代码和关键帧设置,读者可以快速掌握主角控制器的开发。
最低0.47元/天 解锁文章
1657





