unity3d人物移动代码
时间: 2024-08-12 17:08:00 浏览: 117
Unity3D中,人物移动通常是通过更新角色的位移和旋转来实现的。下面是一个简单的例子,展示如何使用脚本来控制角色的基本移动:
```csharp
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public float speed = 5f; // 角色移动速度
private Vector3 movementDirection; // 移动方向
void Update()
{
// 接收输入
movementDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); // 垂直方向通常不包含
// 正向或反向移动
movementDirection = transform.TransformDirection(movementDirection); // 将世界坐标转换为本地坐标
movementDirection *= speed;
// 如果按住空格键,跳跃
if (Input.GetKeyDown(KeyCode.Space))
{
GetComponent<Rigidbody>().AddForce(Vector3.up * 10f, ForceMode.Impulse);
}
// 移动物体
GetComponent<Rigidbody>().MovePosition(transform.position + movementDirection * Time.deltaTime);
}
}
```
这个脚本假设你有一个`Rigidbody`组件附加到游戏对象上,它负责物理运动。`Update`方法会在每一帧调用,获取玩家的输入并调整角色的位置。
阅读全文