在游戏开发的世界里,Unity 3D 是一款非常受欢迎的游戏引擎,它以其强大的功能和易用性吸引了无数开发者。对于新手来说,掌握Unity 3D的基本操作是开启游戏开发之旅的第一步。本文将带领你从零开始,学习如何创建一个简单的角色控制器,实现角色的移动、跳跃和旋转。
第一步:准备工作
在开始之前,请确保你已经安装了Unity Hub和Unity 2023.1.1f1版本。此外,你还需要一个Unity编辑器和一个IDE,比如Visual Studio或VS Code。
第二步:创建新项目
- 打开Unity Hub,点击“新建”。
- 选择“3D”项目模板,然后点击“创建”。
- 在弹出的窗口中,输入项目名称,选择项目存储位置,然后点击“创建”。
第三步:设置场景
- 在Unity编辑器中,选择“GameObject” > “3D Object” > “Cube”,创建一个立方体作为角色。
- 选中立方体,在Inspector面板中将其名称改为“Player”。
- 选中“Player”对象,在Inspector面板中找到“Rigidbody”组件,并将其“Use Gravity”属性设置为“False”,这样角色就不会受到重力影响。
第四步:添加脚本
- 在Unity编辑器中,选择“Assets” > “Create” > “C# Script”。
- 将新创建的脚本命名为“PlayerController”。
- 双击打开脚本,编写以下代码:
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 7f;
private Rigidbody rb;
private bool isGrounded;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
Move();
Jump();
Rotate();
}
void Move()
{
float moveX = Input.GetAxis("Horizontal") * moveSpeed;
float moveZ = Input.GetAxis("Vertical") * moveSpeed;
Vector3 movement = new Vector3(moveX, 0f, moveZ);
rb.MovePosition(rb.position + movement * Time.deltaTime);
}
void Jump()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isGrounded = false;
}
}
void Rotate()
{
float rotateX = Input.GetAxis("Mouse X") * 5f;
float rotateY = Input.GetAxis("Mouse Y") * 5f;
transform.Rotate(-rotateY, rotateX, 0f);
}
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
第五步:创建地面
- 选择“GameObject” > “3D Object” > “Plane”,创建一个平面作为地面。
- 选中地面,在Inspector面板中将其名称改为“Ground”。
- 选中“Ground”对象,在Inspector面板中找到“Tag”组件,将其标签设置为“Ground”。
第六步:测试游戏
- 按下键盘上的“Play”按钮,进入播放模式。
- 使用键盘上的W、A、S、D键控制角色移动。
- 按下空格键使角色跳跃。
- 使用鼠标左键和右键控制角色的旋转。
恭喜你,你已经成功创建了一个简单的角色控制器,并实现了移动、跳跃和旋转功能。接下来,你可以根据自己的需求对脚本进行修改和扩展,让你的游戏更加丰富多彩。
