【Unity】7.2 鼠标输入
分类:Unity、C#、VS2015
创建日期:2016-04-21
一、简介
在桌面系统的游戏中,鼠标输入是最基本的输入方式之一。游戏很多操作都需要鼠标来完成,例如武器的瞄准和开火、菜单的单击、物体的拾取等。
鼠标输入的相关事件包括鼠标移动、按键的单击等。
Input类中和鼠标输入有关的方法和变量如下图所示:
在Unity中,鼠标位置用屏幕的像素坐标表示,屏幕左下角为坐标原点(0,0),右上角为(screen.width,screen.height),其中screen.width为屏幕分辨率的宽度,screen.height为屏幕分辨率的高度。
mousePosition的变量类型为Vector3,,其中x分量对应水平坐标,y分量对应垂直坐标,z分量始终为0。
CetMouseButtonDown、CetMouseButtonUp、CetMouseButton这3个方法需要传入参数来指定判断哪个鼠标按键,0对应左键,1对应右键,2对应中键。
二、基本用法示例
下面的代码演示了如何响应鼠标单击事件(0对应鼠标左键,1对应鼠标右键,2对应鼠标中键)。
void Update()
{
//按下鼠标左键
if(Input.GetMouseButtonDown(0))
{
//...
}
//按住鼠标左键
if(Input.GetMouseButton(0))
{
//...
}
//抬起鼠标左键
if(Input.GetMouseButtonUp(0))
{
//...
}
//按下鼠标右键
if(Input.GetMouseButtonDown(1))
{
//...
}
//按住鼠标右键
if(Input.GetMouseButton(1))
{
//...
}
//抬起鼠标右键
if(Input.GetMouseButtonUp(1))
{
//...
}
}
示例(Demo2_1_RotateExample.unity)
该例子演示如何根据鼠标移动距离来旋转模型进行观察。
将下面的脚本(RotateExample.cs文件)添加到要旋转的模型上,模型就会跟随鼠标的移动而旋转:
using UnityEngine;
using System.Collections; public class RotateExample : MonoBehaviour
{
public float horizontalSpeed = 6.0f;
public float verticalSpeed = 6.0f;
void Update()
{
float h = horizontalSpeed * Input.GetAxis("Mouse X");
float v = verticalSpeed * Input.GetAxis("Mouse Y");
transform.Rotate(v, h, 0);
}
}
运行效果:
【Unity】7.2 鼠标输入的更多相关文章
- unity零基础开始学习做游戏(三)鼠标输入,来个虚拟摇杆怎么样?
-------小基原创,转载请给我一个面子 现在移动游戏越来越火,大家都拿手机平板玩游戏,没有键盘和手柄输入,所以就不得不看看虚拟摇杆怎么搞?(小基对于没有实体反馈不是很喜欢呢) 首先要清楚,鼠标操作 ...
- 关于Unity中的Input输入事件
截获鼠标,键盘的消息 监听事件我们都是在Update里面监听的. Unity的虚拟轴打开:Edit-->Project Settings-->Input,打开的各个Name就是双引号里面要 ...
- 【前端】js代码模拟用户键盘鼠标输入
js代码模拟用户键盘鼠标输入 原生js var event = new Event('mousewheel'); event.wheelDelta = 360 document.dispatchEve ...
- 【Visual C++】游戏编程学习笔记之八:鼠标输入消息(小demo)
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.c ...
- DX11 Without DirectX SDK--05 键盘和鼠标输入
回到 DirectX11--使用Windows SDK来进行开发 提供键鼠输入可以说是一个游戏的必备要素.在这里,我们不使用DirectInput,因为Windws SDK本身就不提供该头文件.这里我 ...
- DirectX11 With Windows SDK--05 键盘和鼠标输入
前言 提供键鼠输入可以说是一个游戏的必备要素.在这里,我们不使用DirectInput,而是使用Windows的消息处理机制,不过要从头开始实现会让事情变得很复杂.DXTK提供了鼠标输入的Mouse. ...
- Unity Android设备的输入
Unity Android设备的输入 1依据屏幕位置输入 有的时候也许是为了整个有些风格的干净,减少屏幕上的UI图标,以至于摒弃了虚拟按键这种常用的输入方式.为了替代虚拟按键的输入方式而选择了依据点击 ...
- gamemakerstudio:鼠标输入
标准鼠标输入常量: mb_left 按下鼠标左键 mb_middle 按下鼠标中键 (这可能不是在所有目标平台上都有效) mb_right 按下鼠标右键 mb_none 没有按下任何鼠标键 mb_an ...
- 2018-2-13-wpf-PreviewTextInput-在鼠标输入获得-_u0003
title author date CreateTime categories wpf PreviewTextInput 在鼠标输入获得 � lindexi 2018-2-13 17:23:3 +08 ...
随机推荐
- SpringCloud中eureka配置心跳和剔除下线的服务的时间
在默认的springCloud中eureka注册中心在服务下线时表现的非常不灵敏,用惯了dubbo的zk注册中心表示很不习惯,eureka设计的本意是在服务不会频繁上下线和网络稳定的内网,这种设计在生 ...
- 触发JVM进行Full GC的情况及应对策略
堆内存划分为 Eden.Survivor 和 Tenured/Old 空间,如下图所示: 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为M ...
- Libevent例子(一)
服务器端 #include<stdio.h> #include<string.h> #include<errno.h> #include<event.h> ...
- ios中二维码的用法
网上的例子 zbar 下载地址 http://pan.baidu.com/share/link?shareid=2652605686&uk=9237761871.新建一个工程A:view-ba ...
- Linux-TCP 出现 RST 的几种情况
导致“Connection reset”的原因是服务器端因为某种原因关闭了Connection,而客户端依然在读写数据,此时服务器会返回复位标志“RST”,然后此时客户端就会提示“java.net.S ...
- windbg(1)
1.http://www.cnblogs.com/huangyong9527/category/384128.html 2.http://www.cnblogs.com/pugang/category ...
- Rplidar学习(三)—— ROS下进行rplidar调试
一.建立工作空间.编译包 mkdir -p ~/catkin_rplidar/src #创建目录 cd ~/catkin_rplidar/src #打开目录 #下载rplidar_ros数据包,进行移 ...
- ML之回归
一.概述 一元形式: 多元形式: 最小二乘的目标函数
- excel文档中数据导入sql server注意事项
进来经常需要对一些基础数据进行更新,而业务方提供的数据源往往都是excel,所以经常需要将excel中数据导入到 数据库临时表,然后再进行处理. 在导入过程中,发现有些数据比如手机号码,如果默认导入, ...
- Oracle 12C -- Plug in a Non-CDB as a PDB
1.备份non-CDB数据库2.关闭non-CDB数据库 SQL> shutdown immediate; 3.将non-CDB至于只读状态 SQL> startup open read ...