using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseCamera : MonoBehaviour
{
public enum RotationAxes
{
MouseXAndY = 0, //上下左右滑动
MouseX = 1, //左右滑动
MouseY = 2 //上下滑动
}
public RotationAxes m_axes = RotationAxes.MouseXAndY;
[Range(1,10)]
public int m_sensitivityX = 5; //视角转动的幅度
[Range(1,10)]
public int m_sensitivityY = 5;
[Range(1,10)]
public int m_fieldOfView = 5; //视角拉伸的幅度
// 垂直方向的镜头转向范围
public float m_minimumY = -45f;
public float m_maximumY = 45f;
float m_rotationY = 0f;
void Start()
{
}
void Update()
{
if (Input.GetMouseButton(1))
{
if (m_axes == RotationAxes.MouseXAndY)
{
float m_rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * m_sensitivityX;
m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
m_rotationY = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);
transform.localEulerAngles = new Vector3(-m_rotationY, m_rotationX, 0);
}
else if (m_axes == RotationAxes.MouseX)
{
transform.Rotate(0, Input.GetAxis("Mouse X") * m_sensitivityX, 0);
}
else
{
m_rotationY += Input.GetAxis("Mouse Y") * m_sensitivityY;
m_rotationY = Mathf.Clamp(m_rotationY, m_minimumY, m_maximumY);
transform.localEulerAngles = new Vector3(-m_rotationY, transform.localEulerAngles.y, 0);
}
}
//通过鼠标滚轮放大 和 缩放视角
if (Input.GetAxis("Mouse ScrollWheel") < 0)
{
Camera.main.fieldOfView += m_fieldOfView;
}
if (Input.GetAxis("Mouse ScrollWheel") > 0)
{
Camera.main.fieldOfView -= m_fieldOfView;
}
}
}
unity中使用鼠标右键控制旋转滑轮控制视角
最新推荐文章于 2025-03-18 11:31:44 发布