Unity相机鼠标基本控制
一、滚轮控制视角缩放
/// <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相机鼠标基本控制的更多相关文章
- Unity相机跟随
固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...
- 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转
今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...
- CSS(五):背景、列表、超链接伪类、鼠标形状控制属性
一.背景属性 1.背景属性用来设置页面元素的背景样式. 2.常见背景属性 属性 描述 background-color 用来设置页面的背景色,取值如red,#ff0000 background-ima ...
- Unity编辑器 - 鼠标悬停在控件上时改变鼠标样式
Unity编辑器 - 鼠标悬停在控件上时改变鼠标样式 摘自Unity文档 EditorGUIUtility.AddCursorRect public static void AddCursorRect ...
- Pycharm用鼠标滚轮控制字体大小的
Pycharm用鼠标滚轮控制字体大小的 一.pycharm字体放大的设置 File —> setting —> Keymap —>在搜寻框中输入:increase —> I ...
- Unity中使用摇杆控制
Unity中使用摇杆控制 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50 ...
- (转)Pycharm用鼠标滚轮控制字体大小
转自: Pycharm用鼠标滚轮控制字体大小 - 暗黒骑士 - 博客园 https://www.cnblogs.com/fyknight/p/6937482.html ---------------- ...
- threejs 鼠标移动控制模型旋转
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 如何在CSS中映射的鼠标位置,并实现通过鼠标移动控制页面元素效果
映射鼠标位置或实现拖拽效果,我们可以在 JavaScript 中做到这一点.但实际上,在CSS中有更加简洁的方法,我们可以在不使用JavaScript 的情况下,仍然可以实现相同的功能! 只使用CSS ...
随机推荐
- HTML/JavaScript实现地图以鼠标为圆心缩放和移动
代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- 推荐7款用于PHP的代码调试工具,太有用了!
当谈论到服务器端的脚本语言时,大多数人都会首先想到PHP.在你写完代码后,使用一些检查方面的工具是非常有必要的,无论是单纯的代码调试工具,还是测试优化工具.下面就为广大的PHP开发者介绍7个专为PHP ...
- Give me five !
@media only screen and (max-width: 360px) { #friedsGroup { grid-template-columns:1fr!important; } } ...
- css3制作网页动画
一.CSS3变形 CSS3变形是一些效果的集合 如平移.旋转.缩放.倾斜效果 每个效果都可以称为变形(transform),它们可以分别操控元素发生平移.旋转.缩放.倾斜等变化 二.CSS3位移:tr ...
- 广搜 BFS()
极其简陋的BFS模板 void BFS(???){ queue<node>q; node start, next; start = ???; q.push(start); while(!q ...
- k8s service的四种类型
ClusterIp 默认类型,每个Node分配一个集群内部的Ip,内部可以互相访问,外部无法访问集群内部. NodePort 基于ClusterIp,另外在每个Node上开放一个端口,可以从所有的位置 ...
- day:3.9基础复习
1.不要在模块之间相互调用,否则会出现麻绳现象,避免循环导入. ==:用来判断值是否相等(分别指向两个空间,但是空间里面的内容相同) is:判断指向是否相等. 例: a=[,,] b=[,,] a== ...
- R语言函数化编程笔记1
R语言函数化编程笔记1 notes:有一个不错的网站叫做stack overflow,有问题可以从上面找或者搜索答案,会有大佬相助. 在github上面可以找到很多R的扩展包,如果自己额修改被接受,那 ...
- shell变量内字符替换和变量字符修改
vi test.sh a= #将${a}里的第一个123替换为321 b=${a//}; echo "echo variable a" echo $a echo "ech ...
- Selenium3+python自动化007-警告框
警告框 alert = driver.switch_to.alert alert.text() alert.accpet() alert.dismiss() # 导selenium包 from sel ...