【unity3D】鼠标控制camera的移动、放大(俯视浏览效果、LOL摄像机移动效果)
在Unity开发中,用鼠标滚轮来实现摄像机的视野范围,鼠标左键拖拉控制摄像机的移动,代码如下:
1.俯视浏览效果
using UnityEngine;
using System.Collections; public class CameraCol : MonoBehaviour {
//控制视野缩放的速率
public float view_value;
//控制摄像机移动的速率
public float move_speed;
void Update () {
//放大、缩小
if( Input.GetAxis("Mouse ScrollWheel") != )
{
this.gameObject.transform.Translate(new Vector3(,,Input.GetAxis("Mouse ScrollWheel")*Time.deltaTime*view_value));
}
//移动视角
if (Input.GetMouseButton ()) {
transform.Translate (Vector3.left * Input.GetAxis ("Mouse X") * move_speed);
transform.Translate(Vector3.up * Input.GetAxis("Mouse Y") * -move_speed);
}
}
}
2.LOL摄像机效果
鼠标移至屏幕边控向相应位置移动
//整体移动速度
var speed=; //关于鼠标滑轮的参数
var MouseWheelSensitivity = 0.0001f;
var MouseZoomMin = -2.4f;
var MouseZoomMax = 1.0f;
var normalDistance = -1.1; //水平和垂直的移动速度
var horizontalMoveSpeed = 0.1;
var verticalMoveSpeed = 0.1; //上左下右的标记
var topTag = ;
var leftTag = ;
var botTag = ;
var rightTag = ; function Start () { } function Update () {
if( Input.GetAxis("Mouse ScrollWheel") != )
{
this.gameObject.transform.Translate(new Vector3(,,Input.GetAxis("Mouse ScrollWheel")*Time.deltaTime*));
}
//获取cursor坐标
var msPos = Input.mousePosition; //边界最小值
var widthBorder = Screen.width/;
var heightBorder = Screen.height/; var x = 0.0f;
var y = 0.0f; //当前鼠标位置标记
var posTag = ; if(widthBorder<=msPos.x && msPos.x<=Screen.width-widthBorder &&
heightBorder<=msPos.y && msPos.y<=Screen.height-heightBorder)
{
transform.Translate(x,y,y);
Debug.Log("asd"+msPos.x+" "+msPos.y);
}
else
{
// posTag
//
// 1100 | 1000 | 1001
// 0100 | 0000 | 0001
// 0110 | 0010 | 0011
//
// 12 | 8 | 9
// 4 | 0 | 1
// 6 | 2 | 3
//
if(msPos.y>Screen.height-heightBorder)
posTag = posTag | topTag;
if(msPos.x<widthBorder)
posTag = posTag | leftTag;
if(msPos.y<heightBorder)
posTag = posTag | botTag;
if(msPos.x>Screen.width-widthBorder)
posTag = posTag | rightTag; switch(posTag)
{
case : break;
case : x = horizontalMoveSpeed; break;
case : y = -verticalMoveSpeed; break;
case : x = horizontalMoveSpeed; y = -verticalMoveSpeed; break;
case : x = -horizontalMoveSpeed; break;
case : x = -horizontalMoveSpeed; y = -verticalMoveSpeed; break;
case : y = verticalMoveSpeed; break;
case : x = horizontalMoveSpeed; y = verticalMoveSpeed; break;
case :x = -horizontalMoveSpeed;y = verticalMoveSpeed; break;
default: break;
} x *= speed*Time.deltaTime;
y *= speed*Time.deltaTime; //
transform.Translate(x, y, y);
} }
【unity3D】鼠标控制camera的移动、放大(俯视浏览效果、LOL摄像机移动效果)的更多相关文章
- THREE.js代码备份——线框cube、按键、鼠标控制
<!DOCTYPE html> <html lang="en"> <head> <title>three.js canvas - g ...
- 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统) zouxy09@qq.com http://blog.csdn.net/zouxy09 一年多前开始接触计算机视觉这个领域的时候,年幼无 ...
- THREE.js代码备份——webgl - geometry - dynamic(模拟海浪,通过时间(毫秒)来控制平面点的运动模拟海浪,鼠标控制写在另外的js中)
HTML: <!DOCTYPE html> <html lang="en"> <head> <title>three.js webg ...
- OpenGl 导入读取多个3D模型 并且添加鼠标控制移动旋转
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11627508.html 前言: 因为接下来的项目需求是要读取多个3D模型,并且移动拼接,那么我 ...
- HTML5鼠标hover的时候图片放大的效果展示
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 使用anyremote进行远程鼠标控制
源代码安装 http://anyremote.sourceforge.net/pre.html 安装 -xtest apt-get install libxtst-dev 安装 glib sudo ...
- [Python Study Notes]实现对鼠标控制
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- JS/jquery实现鼠标控制页面元素显隐
最近网站要上一个活动广告横幅,当用户鼠标划过时显隐二维码.像这种鼠标事件控制页面元素显隐的情况,码农们会经常遇到,可以通过javascript或jquery代码实现,下面就几种常见需求一起归纳一下. ...
- [Python Study Notes]pynput实现对鼠标控制
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
随机推荐
- Eclipse插件开发 swt ComboBoxCellEditor CCombo 下拉框高度
效果图: 代码如下 bindingPageTableViewer.setCellModifier(new ICellModifier() { public boolean canModify( ...
- 01-04-01【Nhibernate (版本3.3.1.4000) 出入江湖】原生的SQL查询
Nhibernate 支持原生的SQL查询 : /// <summary> /// 使用原生的SQL查询 /// </summary> /// <param name=& ...
- 关于asp.net mvc4 在IE8下 导出excel失败的解决办法
在使用FileResult向浏览器输出文件时(pdf,excel等),通常这样做: byte[] fileContents = Encoding.UTF8.GetBytes(sbHtml.ToStri ...
- hdu 1242 Rescue(BFS,优先队列,基础)
题目 /******************以下思路来自百度菜鸟的程序人生*********************/ bfs即可,可能有多个’r’,而’a’只有一个,从’a’开始搜,找到的第一个’r ...
- React vs Angular 2: 冰与火之歌
黄玄 · 3 个月前 本文译自 Angular 2 versus React: There Will Be Blood ,其实之前有人翻译过,但是翻得水平有一点不忍直视,我们不希望浪费这篇好文章. 本 ...
- PHP图标类库 - JpGraph使用详解
http://w3note.com/web/181.html 微信平台开发的推广支持应用里,为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口.使用该接口可以获得多个带不同场景值的二 ...
- POJ 3259 Wormholes(SPFA)
http://poj.org/problem?id=3259 题意 : 农夫约翰农场里发现了很多虫洞,他是个超级冒险迷,想利用虫洞回到过去,看再回来的时候能不能看到没有离开之前的自己,农场里有N块地, ...
- hdu 1452 Happy 2004
因子和: 的因子是1,2,3,6; 6的因子和是 s(6)=1+2+3+6=12; 的因子是1,2,4,5,10,20; 20的因子和是 s(20)=1+2+4+5+10+20=42; 的因子是1,2 ...
- excel公式应用大全
excel公式应用大全 1.ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值. 使用格式:ABS(number) 参数说明:number代表需要求绝对值的数值或引用的单元格. 应用举例:如 ...
- lintcode :前序遍历和中序遍历树构造二叉树
解题 前序遍历和中序遍历树构造二叉树 根据前序遍历和中序遍历树构造二叉树. 样例 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \ 1 3 注意 你可以假设树中不存 ...