Files
MuHua-Core/Assets/ModuleControl/ViewInputUnit/VIUCameraScale.cs
T
2024-11-08 18:15:06 +08:00

36 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VIUCameraScale : ModuleViewInputUnit {
public enum ScaleType { Scale, Orthographic }
private readonly ScaleType scaleType;
private readonly ModuleViewCamera viewCamera;
public VIUCameraScale(ModuleViewCamera viewCamera, ScaleType scaleType = ScaleType.Scale) {
this.viewCamera = viewCamera;
this.scaleType = scaleType;
}
public override void DownMouse(DataMouseInput data) {
}
public override void DragMouse(DataMouseInput data) {
}
public override void ReleaseMouse(DataMouseInput data) {
}
public override void ScrollWheel(DataMouseInput data) {
if (scaleType == ScaleType.Scale) {
float size = viewCamera.LocalScale.x + data.ScrollWheel;
size = Mathf.Clamp(size, 0.5f, 4);
Vector3 localScale = new Vector3(size, size, size);
viewCamera.LocalScale = Vector3.Lerp(viewCamera.LocalScale, localScale, Time.deltaTime * 20);
}
if (scaleType == ScaleType.Orthographic) {
float size = viewCamera.OrthographicSize + data.ScrollWheel;
size = Mathf.Clamp(size, 0.1f, 4);
viewCamera.OrthographicSize = Mathf.Lerp(viewCamera.OrthographicSize, size, Time.deltaTime * 20);
}
}
}