29 Unity游戏开发教程:用户输入之移动角色
在上一节中,我们讨论了如何获取用户输入,包括键盘和鼠标的基本操作。现在,我们将基于这些输入来控制角色的移动。这一节,我们将实现一个简单的角色移动系统,使玩家能够通过键盘输入来控制角色在场景中的位置。
准备工作
首先,确保你已经设置好了一个简单的场景,其中有一个可控制的角色。我们可以使用一个简单的3D角色模型,或者你可以使用Unity自带的Cube对象作为占位符。
创建角色
- 在Hierarchy面板中,右键点击选择 3D Object->Cube,创建一个新立方体作为角色。
- 将立方体的 Position属性设置为 ,使其悬浮在地面上。
角色移动脚本
接下来,我们将创建一个C#脚本来处理角色的移动。按照以下步骤进行:
- 在Project面板中,右键点击 Assets文件夹,选择Create->C# Script,命名为PlayerMovement。
- 双击文件夹中的 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 或者 左右箭头),值在 之间。
- Input.GetAxis("Vertical"):这会返回用户按下的垂直方向键(默认是 W 和 S 或者 上下箭头),同样值在 之间。
- Vector3 movement:我们创建一个新的向量,表示角色的移动方向。
- transform.Translate(...):使用此函数将角色移动到新的位置。我们乘以- Time.deltaTime以确保移动是平滑的。
应用脚本
将 PlayerMovement 脚本应用到创建的角色(立方体)上:
- 在Hierarchy面板中选择立方体。
- 在Inspector面板中,点击 Add Component,然后搜索并添加PlayerMovement脚本。
测试运行
- 点击Unity的播放按钮(Play)启动游戏模式。
- 使用 WASD 或者箭头键控制立方体的移动。
你应该看到立方体可以在场景中移动,根据你的输入改变其位置。
结论
在本节中,我们实现了一个基本的角色移动系统,通过用户输入来控制角色。这个系统为创建更复杂的游戏机制打下了基础,因为我们可以在此基础上添加更多的功能,例如角色的跳跃、攻击等。
在下一节中,我们将介绍如何使用 UI 按钮来控制角色移动,这将帮助你更好地理解 Unity 中的 UI 交互。
继续关注这系列教程,以便学习更多关于 Unity 游戏开发的知识!
