unity鼠标控制场景旋转 滑轮缩放场景完整代码
时间: 2023-06-23 14:46:18 浏览: 198
以下是一个基本的 Unity 鼠标控制场景旋转和滑轮缩放场景的完整代码:
```csharp
using UnityEngine;
public class SceneController : MonoBehaviour
{
[SerializeField] private float rotateSpeed = 5f;
[SerializeField] private float zoomSpeed = 5f;
[SerializeField] private float minZoom = 5f;
[SerializeField] private float maxZoom = 20f;
private void Update()
{
// 旋转场景
if (Input.GetMouseButton(0))
{
float rotateX = Input.GetAxis("Mouse X") * rotateSpeed;
float rotateY = Input.GetAxis("Mouse Y") * rotateSpeed;
transform.Rotate(-rotateY, rotateX, 0);
}
// 缩放场景
float zoom = Input.GetAxis("Mouse ScrollWheel") * zoomSpeed;
if (zoom != 0)
{
float newZoom = Mathf.Clamp(transform.position.z + zoom, -maxZoom, -minZoom);
transform.position = new Vector3(transform.position.x, transform.position.y, newZoom);
}
}
}
```
在该代码中,我们定义了一些公共字段来调整旋转和缩放的速度以及最小和最大缩放值。在 Update 方法中,我们检测鼠标左键是否按下,如果是,则通过 Input.GetAxis 获取鼠标移动的距离,并使用 transform.Rotate 方法旋转场景。我们还检测鼠标滚轮是否滚动,如果是,则通过 Input.GetAxis 获取滑轮滚动的距离,并使用 Mathf.Clamp 方法限制缩放范围,然后设置 transform.position 的 z 值来缩放场景。
阅读全文