unity cameracontrolller
时间: 2023-07-16 15:10:48 浏览: 89
在Unity中,可以创建一个相机控制器脚本来实现相机的移动、旋转和缩放等功能。下面是一个简单的相机控制器示例:
```csharp
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float moveSpeed = 10f;
public float rotateSpeed = 100f;
public float zoomSpeed = 10f;
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");
transform.Rotate(Vector3.up, mouseX * rotateSpeed * Time.deltaTime);
}
// 缩放相机
float scroll = Input.GetAxis("Mouse ScrollWheel");
transform.Translate(Vector3.forward * scroll * zoomSpeed * Time.deltaTime);
}
}
```
在这个示例中,我们定义了`moveSpeed`(移动速度),`rotateSpeed`(旋转速度)和`zoomSpeed`(缩放速度)这三个公共变量,可以在Unity编辑器中进行调整。
在`Update`方法中,我们首先获取水平和垂直输入轴的值,根据这些值来移动相机。`Input.GetAxis("Horizontal")`和`Input.GetAxis("Vertical")`可以通过键盘的左右箭头或WASD键来获取输入。
然后,我们使用鼠标右键来旋转相机。当鼠标右键按下时,我们获取鼠标X轴的值`Input.GetAxis("Mouse X")`,并根据该值来旋转相机。
最后,我们使用鼠标滚轮来缩放相机。`Input.GetAxis("Mouse ScrollWheel")`返回滚轮的滚动值,并根据该值来调整相机的位置。
将此脚本附加到相机对象上,然后您可以使用键盘和鼠标控制相机的移动、旋转和缩放。
请注意,此示例只提供了基本的相机控制功能,您可以根据需要进行扩展和自定义。如果您有其他问题,请随时提问。
阅读全文