Unity鼠标控制相机视角代码
时间: 2024-10-28 15:10:15 浏览: 25
在Unity中,你可以通过C#脚本来控制相机的移动和旋转,通常利用Input类来监听鼠标输入。以下是一个简单的示例,展示了如何使用鼠标滚轮调整相机的焦距,左键和右键分别控制相机的平移:
```csharp
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float scrollSpeed = 5f;
public Transform cameraParent; // 相机父物体
private Vector3 initialPosition; // 初始化位置
private Quaternion initialRotation; // 初始化旋转
void Start()
{
initialPosition = transform.position;
initialRotation = transform.rotation;
}
void Update()
{
// 鼠标滚动
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
// 焦距调整
if (Input.GetAxis("Mouse ScrollWheel") != 0)
{
transform.Translate(Vector3.up * mouseY * scrollSpeed);
}
// 平移和旋转
transform.Translate(Vector3.right * mouseX, Space.World); // 左键
transform.Translate(Vector3.left * -mouseX, Space.World); // 右键
// 防止无限循环滚动
if (transform.position != initialPosition)
{
initialPosition = transform.position;
}
// 保持旋转在相机视野内
transform.rotation = Quaternion.Lerp(transform.rotation, initialRotation, Time.deltaTime * 4f);
}
}
```
在这个例子中,`cameraParent`属性用于限制相机的移动范围。注意,实际应用中可能需要根据具体需求对代码进行调整。
阅读全文