unity鼠标加键盘控制相机
时间: 2023-08-09 09:09:04 浏览: 173
Unity3d C# 实现纯鼠标平滑控制场景摄像头(相机)实现自由旋转、移动和围绕节点移动旋转等功能源码工程
3星 · 编辑精心推荐
要在Unity中使用鼠标和键盘来控制相机,您可以编写一个脚本来处理输入,并应用于相机对象。下面是一个示例,演示如何使用鼠标和键盘来控制相机的移动和旋转:
```csharp
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float moveSpeed = 10f;
public float rotateSpeed = 100f;
void Update()
{
// 移动相机
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
transform.Translate(new Vector3(horizontal, 0, vertical) * moveSpeed * Time.deltaTime);
// 旋转相机
if (Input.GetMouseButton(1))
{
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
transform.Rotate(Vector3.up, mouseX * rotateSpeed * Time.deltaTime);
transform.Rotate(Vector3.left, mouseY * rotateSpeed * Time.deltaTime);
}
}
}
```
在这个示例中,我们定义了`moveSpeed`(移动速度)和`rotateSpeed`(旋转速度)这两个公共变量,可以在Unity编辑器中进行调整。
在`Update`方法中,我们首先获取水平和垂直输入轴的值,根据这些值来移动相机。`Input.GetAxis("Horizontal")`和`Input.GetAxis("Vertical")`可以通过键盘的左右箭头或WASD键来获取输入。
然后,我们使用鼠标右键来旋转相机。当鼠标右键按下时,我们获取鼠标X轴和Y轴的值`Input.GetAxis("Mouse X")`和`Input.GetAxis("Mouse Y")`,并根据这些值来旋转相机。通过调用`transform.Rotate`方法来实现相机的旋转,其中`Vector3.up`表示绕Y轴旋转,`Vector3.left`表示绕X轴旋转。
将此脚本附加到相机对象上,然后您可以使用鼠标右键来旋转相机,使用键盘的方向键或WASD键来移动相机。
请注意,此示例只提供了基本的相机控制功能,您可以根据需要进行扩展和自定义。如果您有其他问题,请随时提问。
阅读全文