【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 ...
随机推荐
- java 如何对由json对象构成的数组形式的字符串进行遍历?
1.情景展示 现在已知字符串为: [{"name":"微微笑","img":"http://zos.alipayobjects ...
- sql如何通过当前日期获取上周,上上周,上上上周的起始日期(周一_周七)
当前时间周的起始日期(以周一为例)select DATEADD(week,DATEDIFF(week,0,getdate()),0)上周起始:select dateadd(week,-1,DATEAD ...
- 使用static关键字修饰一个属性
//使用static关键字修饰一个属性 //static作用: //static:静态 //1.使用static关键字修饰一个属性,声明为static的变量本质就是一个全局变量; //2.静态变量或方 ...
- javascript判断是否按回车键
function enterHandler(event){ var keyCode = event.keyCode ? event.keyCode : event.which ? event.whic ...
- Oracle用分区表分区交换做历史数据迁移
一. 说明: OLTP库中有些表数据量大,且每月有持续的大量数据添加.因为历史数据在此库中不再做訪问,而是在另1个OLAP库中做分析.所以会对历史数据迁移至OLAP库中.对这样的历史数据迁移的操作.较 ...
- tensorflow动态设置trainable
tensorflow中定义的tf.Variable时,可以通过trainable属性控制这个变量是否可以被优化器更新.但是,tf.Variable的trainable属性是只读的,我们无法动态更改这个 ...
- Cobbler的Web管理和维护
Cobbler的Web管理模块和命令行模块是可以分开工作的,没有依赖关系. 1 WebUI的功能 查看所有的对象和配置文件 添加或者删除system,distro, profile 执行“cobble ...
- string与char*的转换方法
c_str函数的返回值是const char*的,不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程. c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言 ...
- React(0.13) 定义一个使用动画
<!DOCTYPE html> <html> <head> <title>React JS</title> <script src=& ...
- 深度学习动手入门:GitHub上四个超棒的TensorFlow开源项目
作者简介:akshay pai,数据科学工程师,热爱研究机器学习问题.Source Dexter网站创办人. TensorFlow是Google的开源深度学习库,你可以使用这个框架以及Python编程 ...