unity第三人称相机跟随鼠标旋转视角,开始隐藏鼠标,按Alt显示鼠标,并跟随玩家
时间: 2023-04-03 16:01:25 浏览: 87
可以使用以下代码实现:
```csharp
public class ThirdPersonCamera : MonoBehaviour
{
public Transform target; // 玩家的Transform
public float distance = 5.f; // 相机与玩家的距离
public float height = 2.f; // 相机距离玩家的高度
public float smoothSpeed = .5f; // 相机移动的平滑速度
public bool hideCursor = true; // 是否隐藏鼠标
private float mouseX = .f; // 鼠标在X轴上的移动量
private float mouseY = .f; // 鼠标在Y轴上的移动量
private bool cursorLocked = true; // 鼠标是否被锁定
void Start()
{
if (hideCursor)
{
Cursor.lockState = CursorLockMode.Locked; // 隐藏鼠标
Cursor.visible = false;
}
}
void LateUpdate()
{
if (Input.GetKeyDown(KeyCode.LeftAlt))
{
cursorLocked = !cursorLocked; // 切换鼠标锁定状态
Cursor.lockState = cursorLocked ? CursorLockMode.Locked : CursorLockMode.None;
Cursor.visible = !cursorLocked;
}
mouseX += Input.GetAxis("Mouse X");
mouseY -= Input.GetAxis("Mouse Y");
mouseY = Mathf.Clamp(mouseY, -60f, 60f); // 限制Y轴旋转角度
Quaternion rotation = Quaternion.Euler(mouseY, mouseX, );
Vector3 position = rotation * new Vector3(, height, -distance) + target.position;
transform.position = Vector3.Lerp(transform.position, position, smoothSpeed);
transform.rotation = Quaternion.Lerp(transform.rotation, rotation, smoothSpeed);
}
}
```
这段代码实现了第三人称相机跟随鼠标旋转视角,并且可以按Alt键显示/隐藏鼠标。