UGUI中点击鼠标中键实现相机视角在物体上的缩放的代码
时间: 2023-12-14 07:39:44 浏览: 81
在Unity中,可以使用`Input.GetMouseButton`来检测鼠标中键是否按下,并且可以通过`Camera.main`获取主摄像机。然后可以根据鼠标的滚轮值来控制相机的缩放比例,进而实现相机视角在物体上的缩放。
以下是一份示例代码:
```csharp
using UnityEngine;
public class ZoomOnObject : MonoBehaviour
{
public float zoomSpeed = 1.0f;
public float minZoomDistance = 1.0f;
public float maxZoomDistance = 10.0f;
private float currentZoomDistance;
private void Start()
{
currentZoomDistance = Vector3.Distance(Camera.main.transform.position, transform.position);
}
private void Update()
{
if (Input.GetMouseButton(2))
{
float scrollValue = Input.GetAxis("Mouse ScrollWheel");
currentZoomDistance -= scrollValue * zoomSpeed;
currentZoomDistance = Mathf.Clamp(currentZoomDistance, minZoomDistance, maxZoomDistance);
}
Vector3 cameraPosition = transform.position - Camera.main.transform.forward * currentZoomDistance;
Camera.main.transform.position = cameraPosition;
}
}
```
在这个示例代码中,我们将脚本挂载到要缩放的物体上。`zoomSpeed`控制缩放速度,`minZoomDistance`和`maxZoomDistance`控制缩放距离的最小值和最大值。
在`Start`方法中,我们根据相机和物体的初始距离计算出当前距离。
在`Update`方法中,我们检测鼠标中键是否按下,然后根据鼠标滚轮值来更新当前距离。最后,我们通过计算相机的位置来实现相机视角在物体上的缩放。
阅读全文