在unity2D中实现角色移动及跳跃

       

目录

1.创建项目

2.创建玩家角色以及相关场景

​编辑

3.代码部分


在unity2D项目中,想要制作平台跳跃类的游戏,肯定少不了角色的控制系统,在本片文章中将带领大家尝试实现2D玩家角色的移动及跳跃。

1.创建项目

正常创建一个2D或者URP2D的项目,将其命名为PlayerController

2.创建玩家角色以及相关场景

给玩家挂载身体的碰撞器以及刚体,这里将刚体挂在玩家身体精灵的父物体上,后面也会将代码挂在父物体上,目的是让父物体移动然后带动玩家移动。(记得将刚体的Z轴冻结,否则可能出现玩家的精灵翻倒的情况。)

同时创建一个正方体并将其拉长,挂载一个盒状的碰撞箱,充当地面。

3.代码部分

创建一个C#代码(BisicController),将其挂在Player下。

以下是代码部分:

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

public class BisicController : MonoBehaviour
{
    private Rigidbody2D playerRigidBody;
    public float moveSpeed;
    public float jumpSpeed;

    void Start()//在start函数中,会在游戏开始运行时调用一次其中的代码
    {
        playerRigidBody = GetComponent<Rigidbody2D>();//获取玩家的刚体
    }

    void Update()//在update函数中,每帧都会调用一次其中的代码
    {
        Move();
        Jump();
    }
    void Move()//玩家移动的函数
    {
        //通过unity中Input输入的GetAxis函数来确定玩家移动的方向,并将其作为参数赋值给玩家x方向的向量,并令y方向的向量保持不变
        playerRigidBody.velocity = new Vector2(Input.GetAxis("Horizontal") * moveSpeed, playerRigidBody.velocity.y);
    }
    void Jump()//玩家跳跃的函数
    {
        if(Input.GetKeyDown(KeyCode.K))//利用unity中Input输入的GetKeyDown函数检测是否“K“键被按下
        {
            //和玩家移动一样,给玩家y方向的向量赋值
            playerRigidBody.velocity = new Vector2(playerRigidBody.velocity.x, jumpSpeed);
        }
    }
}

控制玩家移动的主要思路就是利用玩家刚体下的velocity并给其赋值,若在只X方向移动便将其他方向赋值为其本来的向量大小。

玩家跳跃同理,检测跳跃按键是否被按下,然后给velocity赋值。

注:

给输入设置键位可以在编辑器左上角的Edit中找到ProjecSettings..,在InputManager的Axis中修改

最后运行游戏就可以通过键盘输入来控制玩家移动了。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值