一、滚轮控制视角缩放

    /// <summary>
/// 滚轮控制相机视角缩放
/// </summary>
public void CameraFOV()
{
//获取鼠标滚轮的滑动量
float wheel = Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * ; //改变相机的位置
_mainCamera.transform.Translate(Vector3.forward * wheel);
}

二、左键控制旋转

Update() 方法中实时获取鼠标水平和竖直方向的偏移量
float _mouseX = Input.GetAxis(“Mouse X”);
float _mouseY = Input.GetAxis(“Mouse Y”);

    /// <summary>
/// 左键控制旋转
/// </summary>
/// <param name="_mouseX"></param>
/// <param name="_mouseY"></param>
public void CameraRotate(float _mouseX,float _mouseY)
{
//注意!!! 此处是 GetMouseButton() 表示一直长按鼠标左键;不是 GetMouseButtonDown()
if (Input.GetMouseButton())
{
//控制相机绕中心点(centerPoint)水平旋转
_mainCamera.transform.RotateAround(centerPoint, Vector3.up, _mouseX * rotateSpeed); //记录相机绕中心点垂直旋转的总角度
angle += _mouseY * rotateSpeed; //如果总角度超出指定范围,结束这一帧(!用于解决相机旋转到模型底部的Bug!)
//(这样做其实还有小小的Bug,能发现的网友麻烦留言告知解决办法或其他更好的方法)
if (angle > maxRotAngle || angle < minRotAngle)
{
return;
} //控制相机绕中心点垂直旋转(!注意此处的旋转轴时相机自身的x轴正方向!)
_mainCamera.transform.RotateAround(centerPoint, _mainCamera.transform.right, _mouseY * rotateSpeed);
}
}

三、中键控制拖动

    /// <summary>
/// 中键控制拖动
/// </summary>
/// <param name="_mouseX"></param>
/// <param name="_mouseY"></param>
public void CameraMove(float _mouseX,float _mouseY)
{
if (Input.GetMouseButton())
{
//加载小手的资源图片
Texture2D cursorTex = Utils.LoadTexture("hand"); //鼠标图标换成自定义小手
Cursor.SetCursor(cursorTex, Vector2.zero, CursorMode.Auto); //相机位置的偏移量(Vector3类型,实现原理是:向量的加法)
Vector3 moveDir = (_mouseX * -_mainCamera.transform.right + _mouseY * -_mainCamera.transform.forward); //限制y轴的偏移量
moveDir.y = ;
_mainCamera.transform.position += moveDir*0.5f;
}
else
{
//鼠标恢复默认图标,置null即可
Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto);
}
}

Unity相机鼠标基本控制的更多相关文章

  1. Unity相机跟随

    固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...

  2. 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转

    今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...

  3. CSS(五):背景、列表、超链接伪类、鼠标形状控制属性

    一.背景属性 1.背景属性用来设置页面元素的背景样式. 2.常见背景属性 属性 描述 background-color 用来设置页面的背景色,取值如red,#ff0000 background-ima ...

  4. Unity编辑器 - 鼠标悬停在控件上时改变鼠标样式

    Unity编辑器 - 鼠标悬停在控件上时改变鼠标样式 摘自Unity文档 EditorGUIUtility.AddCursorRect public static void AddCursorRect ...

  5. Pycharm用鼠标滚轮控制字体大小的

    Pycharm用鼠标滚轮控制字体大小的   一.pycharm字体放大的设置 File —> setting —> Keymap —>在搜寻框中输入:increase —> I ...

  6. Unity中使用摇杆控制

    Unity中使用摇杆控制 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50 ...

  7. (转)Pycharm用鼠标滚轮控制字体大小

    转自: Pycharm用鼠标滚轮控制字体大小 - 暗黒骑士 - 博客园 https://www.cnblogs.com/fyknight/p/6937482.html ---------------- ...

  8. threejs 鼠标移动控制模型旋转

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 如何在CSS中映射的鼠标位置,并实现通过鼠标移动控制页面元素效果

    映射鼠标位置或实现拖拽效果,我们可以在 JavaScript 中做到这一点.但实际上,在CSS中有更加简洁的方法,我们可以在不使用JavaScript 的情况下,仍然可以实现相同的功能! 只使用CSS ...

随机推荐

  1. VS打包程序步骤

    1.下载打包的程序 2.在你的程序里面安装打包的项目 3.添加项目输出 4.为项目添加必要的文件 双击前面建立好的主输出 一般文件为一些配置文件(如使用Nlog写日志,需要添加Nlog的配置文件)和图 ...

  2. 安装oracle client及配置

    一.下载oracle client 下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/1120 ...

  3. C# WPF过渡效果实现(C# WPF Material Design UI: Transitions)

    时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...

  4. js 弹窗插件

    toastr 参考 https://www.cnblogs.com/fu-yong/p/8609597.html prettyPhoto使用 参考

  5. pytest-pytest-html生成HTML测试报告

    pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告.兼容Python 2.7,3.6 pytest-html 1.github上源码地址[https://github.com ...

  6. Mysql-从库只读设置

    主从设置中,如果从库在my.cnf中使用init_connect来限制只读权限的话,从库使用非超级用户(super权限)登陆数据时,无法进行任何操作,仅可维持主从复制. init_connect='S ...

  7. Public Key Retrieval is not allowed

    链接MySQL数据库报错: 数据库连接url中添加对应属性的支持.allowPublicKeyRetrieval=true&useSSL=false url: jdbc:mysql://loc ...

  8. linux - mysql 异常:Ignoring query to other database

    问题描述 Ignoring query to other database(忽略其他数据库查询) 问题原因 登录方式错误,登录命令用的是 “mysql -root -p”,应该用命令 “mysql - ...

  9. linux - mysql 异常:MySQL Daemon failed to start.

    报错内容 MySQL Daemon failed to start. 如果直接输入 mysql -root -p 登陆会出现 [mysql]ERROR 2002 (HY000): Can't conn ...

  10. Python标准库Random

    基本方法 获取一个[0,1)的随机浮点数: import random print(random.random()) #输出 0.6701488343121276 获取指定区间的随机浮点数: impo ...