一、滚轮控制视角缩放

    /// <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. 关于Windows系统下端口被占用的问题和task命令

    一.如何解决端口被占用的问题? 此时端口4444被进程占用,只要找到端口4444的进程,并且将进程kill掉即可. 开始--运行--cmd 进入命令提示符 输入netstat -aon 即可看到所有连 ...

  2. Java连载85-集合的Contains和Remove方法

    一.包含与删除两种方法解析 1.boolean contains(Object o);判断集合中是否包含某个元素. package com.bjpowernode.java_learning; imp ...

  3. centos 安装桌面

    centos7.*安装 1,安装 yum groupinstall "KDE Plasma Workspaces" 2.启动 startx

  4. ctf-ping命令执行绕过

    题目连接:http://ctf.klmyssn.com/challenges#Ping 命令执行绕过,试了试过滤了一些:一些命令 但是反引号可以执行命令 通过拼接,可以拼接出来:ls 命令 127.0 ...

  5. 洛谷P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here

    题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...

  6. 小sun的假期【牛客】

    链接:https://ac.nowcoder.com/acm/contest/1085/A来源:牛客网 应肖老师要求前来更新水一水 题目描述 小 sun 非常喜欢放假,尤其是那种连在一起的长假,在放假 ...

  7. Android_Activity的生命周期、跳转方式及参数传递、启动模式。

    Activity的生命周期: onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy Activity之间的跳转分为显式跳转和隐式跳转 ...

  8. Codeforces 383C Propagating tree, 线段树, 黑白染色思想

    按深度染色,奇深度的点存反权值. #include <bits/stdc++.h> using namespace std; vector <]; ],a[],s[],vis[],i ...

  9. java替换文件中某一行文本的内容

    个人博客 地址:http://www.wenhaofan.com/article/20180913160442 代码如下 package com.wenhaofan.common.kit; impor ...

  10. 微服务读取不到config配置中心配置信息,Spring Boot无法找到PropertySource:找不到标签Could not locate PropertySource: label not found

    服务出现报这个错, o.s.c.c.c.ConfigServicePropertySourceLocator - Could not locate PropertySource: label not ...