【Unity】7.1 Input类的方法和变量

时间:2022-09-21 13:38:00

分类:Unity、C#、VS2015

创建日期:2016-04-21

一、简介

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

下面是Input类的成员变量:

【Unity】7.1 Input类的方法和变量

下面是Input类的成员函数:

【Unity】7.1 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. eclipse快捷键 (包括查找类、方法、变量)

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

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

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

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

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

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

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

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

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

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

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

  9. .NET正则基础——.NET正则类及方法应用

    1        概述 初学正则时,对于Regex类不熟悉,遇到问题不知道该用哪种方法解决,本文结合一些正则应用的典型应用场景,介绍一下Regex类的基本应用.这里重点进行.NET类的介绍,对于正则的 ...

随机推荐

  1. 2015多校1006.First One

    First One Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  2. The Doors - POJ 1556 (线段相交)

    题目大意:有一个房间(左上角(0,10),右下角(10,0)),然后房间里有N面墙,每面墙上都有两个门,求出来从初始点(0,5),到达终点(10,5)的最短距离.   分析:很明显根据两点之间直线最短 ...

  3. (转)教你如何使用php session

    学会php session可以在很多地方使用,比如做一个后台登录的功能,要让程序记住用户的session,其实很简单,看了下面的文章你就明白了.     PHP session用法其实很简单它可以把用 ...

  4. WIN7下使用.net(C#)监视剪贴板 (转)

    最近需要做一个小程序,需要常驻后台,监视剪贴板变化并提取内容, 在网上查了一些资料,先采用SetClipboardViewer方法实现,具体原理可以参考http://www.cnblogs.com/j ...

  5. 製程能力介紹(SPC introduction) ─ 製程能力的三種表示法

    製程能力的三種表示法 Ck: 準度指標 (accuracy)   Ck=(M-X)/(T/2) Cp: 精度指標 (precision)   Cp=T/(6σp) 規格為單邊時:Cp=(Tu-X)/3 ...

  6. 基于集合成工控机Ubuntu系统安装分区详解

    基于集合成工控机Ubuntu系统安装分区详解 硬件描述:双核的CPU,128G的固态硬盘 软件描述:使用Ubuntu12.04系统,内核3.8.0-29版本,QT4.8.1版本 1.新建分区表 /de ...

  7. JavaScript里利用DOM获取宽高大全

    网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...

  8. Hadoop基础-HDFS递归列出文件系统-FileStatus与listFiles两种方法

    Hadoop基础-HDFS递归列出文件系统-FileStatus与listFiles两种方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. fs.listFiles方法,返回Loc ...

  9. IIS Admin Service 服务由于下列服务特定错误而终止: 无效签名。

    于是查看系统日志: 具体信息如下:日志名称:          System来源:            Service Control Manager日期:            2015/11/2 ...

  10. Tensorflow中使用TFRecords高效读取数据--结合Attention-over-Attention Neural Network for Reading Comprehension

    原文链接:https://arxiv.org/pdf/1607.04423.pdf 本片论文主要讲了Attention Model在完形填空类的阅读理解上的应用. 转载:https://blog.cs ...