unity人物旋转移动代码
时间: 2023-09-22 17:09:39 浏览: 72
以下是一个基本的 Unity 人物旋转移动代码,可以用于 WASD 键控制移动,鼠标控制旋转:
```csharp
public class PlayerController : MonoBehaviour
{
public float speed = 5.0f;
public float mouseSensitivity = 3.0f;
private CharacterController controller;
// Start is called before the first frame update
void Start()
{
controller = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
// Movement
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = transform.forward * moveVertical + transform.right * moveHorizontal;
movement.Normalize();
controller.Move(movement * speed * Time.deltaTime);
// Rotation
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
Vector3 rotation = transform.rotation.eulerAngles;
rotation.x -= mouseY * mouseSensitivity;
rotation.y += mouseX * mouseSensitivity;
transform.rotation = Quaternion.Euler(rotation);
}
}
```
在这个代码中,我们首先定义了两个公共变量,`speed` 和 `mouseSensitivity`,它们分别用于控制人物的移动速度和鼠标旋转的敏感度。
在 `Start()` 方法中,我们获取了人物的 `CharacterController` 组件。
在 `Update()` 方法中,我们首先获取了玩家输入的水平和垂直方向的值,然后计算出移动方向并进行归一化。我们使用 `CharacterController` 的 `Move()` 方法来移动人物。
接下来,我们获取鼠标的 X 和 Y 轴移动值,根据这些值计算出人物应该旋转的角度,并将其应用到人物的旋转中。
这个基本的代码可以根据需要进行扩展和修改。
阅读全文