在Unity中 用C#写一个3D 第一人称角色控制器
时间: 2024-03-20 22:38:33 浏览: 125
Unity / C# 第一人称控制器
下面是使用 C# 在 Unity 中编写一个基本的第一人称角色控制器的示例代码。这个控制器将使用键盘和鼠标来移动和旋转角色。
首先,你需要在 Unity 中创建一个空对象,并将其命名为“Player”。然后将以下代码添加到该对象的脚本组件中:
```
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 10.0f;
public float sensitivity = 5.0f;
private CharacterController controller;
private Camera cam;
private float moveFB;
private float moveLR;
private float rotX;
private float rotY;
// Start is called before the first frame update
void Start()
{
controller = GetComponent<CharacterController>();
cam = GetComponentInChildren<Camera>();
}
// Update is called once per frame
void Update()
{
moveFB = Input.GetAxis("Vertical") * speed;
moveLR = Input.GetAxis("Horizontal") * speed;
rotX = Input.GetAxis("Mouse X") * sensitivity;
rotY = Input.GetAxis("Mouse Y") * sensitivity;
Vector3 movement = new Vector3(moveLR, 0, moveFB);
transform.Rotate(0, rotX, 0);
cam.transform.Rotate(-rotY, 0, 0);
movement = transform.rotation * movement;
controller.Move(movement * Time.deltaTime);
}
}
```
这段代码首先定义了一些公共变量,包括速度和灵敏度。然后在 Start() 方法中,它获取了该对象的 CharacterController 和 Camera 组件。在 Update() 方法中,它获取了键盘和鼠标输入,并使用它们来移动和旋转玩家角色。
在这个示例中,键盘的 W 和 S 键控制前后移动,A 和 D 键控制左右移动。鼠标的 X 和 Y 轴控制左右旋转和上下旋转。
你可以根据需要修改这段代码,以便更好地适应你的项目需求。
阅读全文