
Unity 鼠标滚轮缩放 拖动移动视角
发布日期:2021-05-04 04:29:42
浏览次数:34
分类:原创文章
本文共 2338 字,大约阅读时间需要 7 分钟。
using System.Collections;using System.Collections.Generic;using UnityEngine;public class cameraMove : MonoBehaviour{ public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 } public RotationAxes m_axes = RotationAxes.MouseXAndY; public float m_sensitivityX = 10f; public float m_sensitivityY = 10f; public bool CanMove = false; // 水平方向的 镜头转向 public float m_minimumX = -360f; public float m_maximumX = 360f; // 垂直方向的 镜头转向 (这里给个限度 最大仰角为45°) public float m_minimumY = -45f; public float m_maximumY = 45f; float MouseWheelSensitivity = 5; float MouseZoomMin = 2; float MouseZoomMax = 10; float m_rotationY = 0f; // Use this for initialization void Start() { // 防止 刚体影响 镜头旋转 if (GetComponent<Rigidbody>()) { GetComponent<Rigidbody>().freezeRotation = true; } } // Update is called once per frame void Update() { if (Input.GetAxis("Mouse ScrollWheel") < 0) { if (Camera.main.fieldOfView <= 200) Camera.main.fieldOfView += 2; } //Zoom in if (Input.GetAxis("Mouse ScrollWheel") > 0) { if (Camera.main.fieldOfView > 10) Camera.main.fieldOfView -= 2; } if (Input.GetMouseButtonDown(1)) { CanMove = !CanMove; } if (CanMove) { 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); } } } }
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月26日 22时42分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
mybatis 如何切割字符串 查询多个值
2019-03-04
算法初步 (排序, 散列, 贪心, 二分, two pointers)
2019-03-04
Python学习-基础(五)
2019-03-04
myqsl下载安装
2019-03-04
Tomcat下载安装
2019-03-04
4.10 访问权限
2019-03-04
9.5 正则表达式及字符串的替换与分解
2019-03-04
发布npm
2019-03-04
前端搜索
2019-03-04
在所有情况下取到顶层对象
2019-03-04
解构赋值
2019-03-04
封装vue的弹窗组件
2019-03-04
qt Event
2019-03-04
串的基本操作实现源码|数据结构
2019-03-04
数据查询(3.4)
2019-03-04
实验二 进程创建实验
2019-03-04
送你一颗心Easyx
2019-03-04
qtDesigner中添加QAction
2019-03-04
Java读入中文文件乱码现象的解决方案|java
2019-03-04