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;
}
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务