ShanxiKnowledgeBase/SXElectricityInformationAcq.../Assets/Scripts/Electroscope/CameraZoomAndModelMove.cs

38 lines
1.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
/// <summary>
/// 鼠标控制相机Fov进行镜头方法缩小
/// </summary>
public class CameraZoomAndModelMove : MonoBehaviour
{
public Camera mainCamera;//主相机
public Transform model;//验电笔模型
//需要自定义模型位置首先Camera的Fov是60的时候填写模型的坐标
public Vector3 startPosition = new Vector3(0.819f, -0.06f, 1.04f); // FOV 60时的位置
//Camera的Fov是20的时候填写模型的坐标
public Vector3 endPosition = new Vector3(0.559f, 0.052f, 2.5f); // FOV 20时的位置
private float maxFOV = 60f;
private float minFOV = 20f;
void Update()
{
HandleCameraZoom();
MoveModelBasedOnFOV();
}
private void HandleCameraZoom()
{
float scrollInput = Input.GetAxis("Mouse ScrollWheel");
mainCamera.fieldOfView -= scrollInput * 10f;
mainCamera.fieldOfView = Mathf.Clamp(mainCamera.fieldOfView, minFOV, maxFOV);
}
private void MoveModelBasedOnFOV()
{
float t = Mathf.InverseLerp(maxFOV, minFOV, mainCamera.fieldOfView);
float nonLinearT = t * t;
model.localPosition = Vector3.Lerp(startPosition, endPosition, nonLinearT);
}
}