Jupyter AI

29 Unity游戏开发教程:用户输入之移动角色

📅 发表日期: 2024年8月23日

分类: 🎮Unity 游戏开发入门

👁️阅读: --

在上一节中,我们讨论了如何获取用户输入,包括键盘和鼠标的基本操作。现在,我们将基于这些输入来控制角色的移动。这一节,我们将实现一个简单的角色移动系统,使玩家能够通过键盘输入来控制角色在场景中的位置。

准备工作

首先,确保你已经设置好了一个简单的场景,其中有一个可控制的角色。我们可以使用一个简单的3D角色模型,或者你可以使用Unity自带的Cube对象作为占位符。

创建角色

  1. 在Hierarchy面板中,右键点击选择 3D Object -> Cube,创建一个新立方体作为角色。
  2. 将立方体的 Position 属性设置为 (0,1,0)(0, 1, 0),使其悬浮在地面上。

角色移动脚本

接下来,我们将创建一个C#脚本来处理角色的移动。按照以下步骤进行:

  1. 在Project面板中,右键点击 Assets 文件夹,选择 Create -> C# Script,命名为 PlayerMovement
  2. 双击文件夹中的 PlayerMovement.cs 脚本,打开它进行编码。

以下是基本的角色移动代码:

using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed = 5f; // 移动速度

    void Update()
    {
        // 获取用户输入
        float moveHorizontal = Input.GetAxis("Horizontal"); // A/D或箭头键
        float moveVertical = Input.GetAxis("Vertical"); // W/S或箭头键

        // 构造移动方向
        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

        // 移动角色
        transform.Translate(movement * moveSpeed * Time.deltaTime, Space.World);
    }
}

代码解析

  • public float moveSpeed = 5f;:这是角色移动的速度,可以在Unity编辑器中调整。
  • Input.GetAxis("Horizontal"):这会返回用户按下的水平方向键(默认是 A 和 D 或者 左右箭头),值在 [1,1][-1, 1] 之间。
  • Input.GetAxis("Vertical"):这会返回用户按下的垂直方向键(默认是 W 和 S 或者 上下箭头),同样值在 [1,1][-1, 1] 之间。
  • Vector3 movement:我们创建一个新的向量,表示角色的移动方向。
  • transform.Translate(...):使用此函数将角色移动到新的位置。我们乘以 Time.deltaTime 以确保移动是平滑的。

应用脚本

PlayerMovement 脚本应用到创建的角色(立方体)上:

  1. 在Hierarchy面板中选择立方体。
  2. 在Inspector面板中,点击 Add Component,然后搜索并添加 PlayerMovement 脚本。

测试运行

  1. 点击Unity的播放按钮(Play)启动游戏模式。
  2. 使用 WASD 或者箭头键控制立方体的移动。

你应该看到立方体可以在场景中移动,根据你的输入改变其位置。

结论

在本节中,我们实现了一个基本的角色移动系统,通过用户输入来控制角色。这个系统为创建更复杂的游戏机制打下了基础,因为我们可以在此基础上添加更多的功能,例如角色的跳跃、攻击等。

在下一节中,我们将介绍如何使用 UI 按钮来控制角色移动,这将帮助你更好地理解 Unity 中的 UI 交互。

继续关注这系列教程,以便学习更多关于 Unity 游戏开发的知识!

🎮Unity 游戏开发入门 (滚动鼠标查看)