分类:Unity、C#、VS2015

创建日期:2016-04-21

一、简介

在Input类中,Key与物理按键对应,例如键盘、鼠标、摇杆上的按键,其映射关系无法改变,程序员可以通过按键名称或者按键编码KeyCode来获得其输入状态。例如,CetKeyDown(KeyCode.A)会在按A键时返回true。

下面是Input类的成员变量:

下面是Input类的成员函数:


二、输入轴(Axis)和输入管理器(Input Manager)

输入轴(Axis)用来模拟平滑变化的输入,如摇杆的变化、方向盘的转动等,需要在输入管理器中配置。

输入轴包含正负两个虚拟按键(Positive Button和Negative Button) 。 可以把一个输入轴想象成一个滑动条,左边取值为-1,右边取值为1。当按下正按键时,滑块向右边的正向移动;当按下负按键时,滑块向左边的负向移动。滑块的位置对应输入轴的当前取值。

Button是输入管理器(Input Manager)中定义的虚拟按键,通过名称来访问。开发者可以根据需要创建和命名虚拟按键,并设置与物理按键(及其组合)的消息映射。例如,Unity默认为用户创建了名为【Fire1】的虚拟按键,并将鼠标左键和左【Ctrl】键的消息映射给Fire1。

打开菜单栏中的Edit-> Proect->Settings->Input项可打开输入管理器。

使用虚拟按键的好处就是可以灵活地配置输入,并且在游戏发布后可以让玩家自定义键位输入。因此,在开发中推荐使用虚拟按键。

可在此界面中添加新的输入轴,另外也可在这里更改每个轴的设置。每个轴可以对应操纵杆、鼠标的两个按钮或两个键盘按键。

下面解释上图界面中各参数的含义。

名称 (Name)

用来在脚本中检查该轴的字符串名称。

描述名称 (Descriptive Name)

配置 (Configuration) 对话框输入选项卡中显示的正名称,用于独立构建。

描述负名称 (Descriptive Negative Name)

配置 (Configuration) 对话框输入选项卡中显示的负名称,用于独立构建。

负按钮 (Negative Button)

用于在负方向移动轴。

正按钮 (Positive Button)

用于在正方向移动轴。

备选负按钮 (Negative Button)

用来在负方向移动轴的备选按钮。

备选正按钮 (Alt Positive Button)

用来在正方向移动轴的备选按钮。

重力 (Gravity)

在没有按任何按钮时,轴下降到 0 的每秒单位速度。

死亡 (Dead)

模拟死区的大小。所有在这个范围内的模拟设备值将映射为 0。

灵敏度 (Sensitivity)

轴向目标值移动的每秒单位速度。该功能仅用于数码设备。

捕捉 (Snap)

如果启用,按下相反方向的按钮时,轴值将自动归零。

反向 (Invert)

如果启用,按下负按钮 (Negative Button) 将提供正值,反之亦然。

类型 (Type)

控制此轴的输入类型。

轴 (Axis)

连接设备的轴将控制这个轴。

操纵杆 (Joy Num)

连接操纵杆将控制这个轴。

这些设置可用来微调输入的外观和感觉。他们在编辑器均带有工具提示。

三、在脚本中使用输入轴

下面的的脚本可以查询当前状态:

value = Input.GetAxis ("Horizontal");

轴值在 -1 到 1 之间。中间位置为 0。 这是在操纵杆输入和键盘输入的情况下。

但是,鼠标增量和 Window Shake 增量是指鼠标或视窗在最后一帧移动的距离。这意味着,当用户快速移动鼠标时,它可能大于 1 或小于 -1。

您可以创建多个名称相同的轴。在获得输入轴时,绝对值最大的轴将被返回。这使得为一种以上输入设备指定同一个轴名称成为可能。例如,为键盘输入创建一个轴,并且为操纵杆创建另一个名称相同的轴。如果用户使用操纵杆,输入将来自操纵杆,否则,输入将来自键盘。有了这种方法,编写脚本时就不需要再考虑输入的来源了。

四、键盘按键和鼠标按钮名称

要映射一个键到一个轴,您必须在检视器中的正按钮 (Positive Button) 或负按钮 (Negative Button) 属性中输入按键名称。

按键名称遵循以下惯例:

标准键: "a"、"b"、"c"、...

数字键:"1"、"2"、"3"、 ...

方向键:“上 (up)”、“下 (down)”、“左 (left)”、“右 (right)”

小键盘键:"[1]"、"[2]"、"[3]"、"[+]"、"[=]"

修改键:"right shift"、"left shift"、"right ctrl"、"left ctrl"、"right alt"、"left alt"、"right cmd"、"left cmd"

鼠标按钮:"mouse 0"、"mouse 1"、"mouse 2", ...

操纵杆按钮(从任意操纵杆):"joystick button 0"、"joystick button 1"、"joystick button 2"、 ...

操纵杆按钮(从指定操纵杆):"joystick 1 button 0"、"joystick 1 button 1"、"joystick 2 button 0"、...

特殊键:"backspace"、"tab"、"return"、"escape"、"space"、"delete"、"enter"、"insert"、"home"、"end"、"page up"、"page down"

功能键:"f1"、"f2"、"f3"、...

在脚本界面和检视器中,用来识别按键的名称是一样的:

value = Input.GetKey ("a");

【Unity】7.1 Input类的方法和变量的更多相关文章

  1. Java基础之对包,类,方法,变量理解(灵感)

    包,类,方法,变量 灵感乍现 感觉就如电脑上的各个大小文档一般,只不过名称不同,用法不同,功效不同,就好比你要调用网上的一个图片,这个图片可以是变量,可以是方法,可以是类.你要调用可以把他幻化成接口, ...

  2. eclipse中查找类、方法及变量被引用的地方

    1.选中要查看的类.方法或变量,然后Ctrl+Shift+G或右键-->References--->Project,就可以找到它所有被引用的地方. 2.对于方法,还可以通过右键--> ...

  3. python基础练习题(题目 作用域、类的方法与变量)

    day29 --------------------------------------------------------------- 实例043:作用域.类的方法与变量 题目 模仿静态变量(st ...

  4. eclipse快捷键 (包括查找类、方法、变量)

    ♦[Ct rl+T] 搜索当前接口的实现类 1. [ALT +/] 智能提示     此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时 ...

  5. 每日扫盲:eclipse快捷键 包括查找类、方法、变量汇总

    [Ct rl+T] 搜索当前接口的实现类 1. [ALT +/]    此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ ...

  6. eclipse快捷键 包括查找类、方法、变量

    [Ct rl+T] 搜索当前接口的实现类 1. [ALT +/]    此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类.方法和属性的名字时,多体验一下[ ...

  7. Java final 关键词修饰类、方法、变量

    1. final修饰类  被修饰的类不能被继承,也没有子类.假如随意创建这些类的子类,子类可能会错误的修改父类的实现细节.出于安全原因,类的实现细节不允许有任何改动.在创建对象模型的时候,确信这个类不 ...

  8. static关键字的作用(修饰类、方法、变量、静态块)

    1. static修饰的类只能为内部类,普通类无法用static关键字修饰.static修饰的内部类相当于一个普通的类,访问方式为(new 外部类名.内部类的方法() ).如下所示: public c ...

  9. python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)

    1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ...

随机推荐

  1. ANTLR#1:描述一个简单计算器

    https://blog.csdn.net/kisimple/article/details/44948603

  2. Echarts饼图更改颜色、显示数据且换行

    var option = {   title : {       text: '数据来源',       x:'center'   },   tooltip : {       trigger: 'i ...

  3. QQ登录整合/oauth2.0认证-04-调整到QQ互联进行QQ登录

    ---------------------------------目录------------------------------------- QQ登录整合/oauth2.0认证-03-对第二节的代 ...

  4. 1A2B猜数字

    知乎链接 维基百科 问题描述 又名猜数字. 一方准备从0到9十个数字里抽出4个数,随机排列,另一方同样以这样的方法回应四个数.位置相同数字相同为A,数字出现,位置不同为B,然后计数. 例1234 56 ...

  5. [Spring学习笔记 2 ]装配各种类型的属性 map,list,array,null,properties

    一.spring Ioc容器补充(1) Spring Ioc容器 DI(依赖注入): 注入的方式:设值方法注入setter(属性注入)/构造子注入(构造函数传入依赖的对象)/字段注入field(注解) ...

  6. Hyperscan 介绍与安装【转】

    来源:http://blog.sina.com.cn/s/blog_913a533b0102wc38.html Hyperscan 介绍与安装 (2016-01-27 16:22:32) 转载▼   ...

  7. fedora下安装运行keil uVision 4 (MDK v4.7)

    先准备好mdk4.73.exe和和谐文件. 1.安装 wine 1.7 添加ppa sudo add-apt-repository ppa:ubuntu-wine/ppa      安装wine 1. ...

  8. 【MySQL】MySQL的索引

    索引是存放在模式中的一个数据库对象,虽然索引总是从属于数据表,但它也和数据表一样属于数据库对象.创建索引的唯一作用就是加速对表的查询,索引通过使用快速路径访问方法来快速定位数据,从而减少了磁盘的I/O ...

  9. 【ASP.NET】ASP.NET如何发布Web项目

    1.右击需要发布的项目,选择 属性>应用程序 在目标框架中选择.NET的版本,选择的版本的要本机安装的版本相符合,通常可以在“C:\Windows\Microsoft.NET\Framework ...

  10. NPM Node.js 包管理

    1.NPM 简介 1.1 NPM Node.js® 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可方便地构建快速,可扩展的网络应用程序的平台.Node.js 使用事件驱动, ...