Unity 鼠标和触摸控制摄像机移动和缩放
代码
代码片
RequireComponent(typeof(Camera))]
public class CameraController : MonoBehaviour
{
/// <summary>
/// 摄像机
/// </summary>
private Camera _camera;
/// <summary>
/// 手指按下
/// </summary>
bool _fingerDown = false;
/// <summary>
/// 单指滑动的手指位置
/// </summary>
Vector3 _oneFingerDragStartPos;
/// <summary>
/// 双指缩放的上一帧的双指距离
/// </summary>
float _twoFingerLastDistance = -1;
/// <summary>
/// 摄像机移动最小位置
/// </summary>
[SerializeField] Vector2 _minPosition;
/// <summary>
/// 摄像机移动最大位置
/// </summary>
[SerializeField] Vector2 _maxPosition;
/// <summary>
/// 默认尺寸
/// </summary>
[SerializeField] float _defaultSize = 5f;
/// <summary>
/// 最小缩放尺寸
/// </summary>
[SerializeField] float _minSize;
/// <summary>
/// 最大缩放尺寸
/// </summary>
[SerializeField] float _maxSize;
/// <summary>
/// 缩放速度
/// </summary>
[SerializeField] float _scaleSpeed = 0.1f;
/// <summary>
/// 移动速度
/// </summary>
[SerializeField] float _moveSpeed = 1f;
/// <summary>
/// 锁定位置
/// </summary>
Vector3 _lockPosition;
public Vector3 LockPosition {
get => ChangePosition(_lockPosition); set => _lockPosition