Unity中的输入管理器由Input类进行操控。官方文档地址:https://docs.unity3d.com/ScriptReference/Input.html

中文翻译的话可以在这里:http://www.ceeger.com/Script/Input/Input.html

这里只说几个易混淆的点。

既然已经有GetKey、GetKeyDown、GetKeyUp 以及 GetMouseButton、GetMouseButtonDown、GetMouseButtonUp,为什么还要有GetButton、GetButtonDown、GetButtonUp呢?

Down、Up分别表示按下、松开,Key、Mouse很容易理解:分别表示键盘、鼠标,GetKey、GetMouse表示按下后没有释放这个动作,类似 Press。

我们知道键盘的按键位置是固定的,鼠标左、右、中键也是固定的,也就是映射关系是固定的。而Button是输入管理器 InputManager所定义的虚拟器,它通过名称来访问。怎么理解,先看下图。

Input 的设置可以通过 Edit –> Project Settings –> Input打开面板

如果我需要判断是否进行了跳跃(Jump),可以在代码中这样写。

if (Input.GetButtonDown("Jump"))
{
Debug.Log("Input Button Down Jump.");
}

运行,当按下空格键,控制台就会输出“Input Button Down Jump.”。而如果把Positive Button 修改一下,不是 space 也是 k,此时当你按下键盘上的 k 时,控制台才会有输出,而按空格键则是没有反应的。它通过名称来进行映射,相较前面 的key、mouse会灵活一些。

鼠标事件的左、中、右键,分别对应的值是0、2、1。

if(Input.GetMouseButton(0)) {
//左键被按下, 放在 Update 方法中会被不断触发 } if(Input.GetMouseButtonDown(1)) {
//右键按下 } if(Input.GetMouseButtonUp(2)) {
//中键抬起 }

键盘对应的字符通过KeyCode可以直接获得,下面的代码当按下键盘A键时在当前节点下添加一个“Button”对应,当按下 D 键时删除一个节点。

if (Input.GetKeyDown(KeyCode.A))
{
Button newButton = Instantiate(button);
newButton.transform.SetParent(this.gameObject.transform, false);
}
else if (Input.GetKeyDown(KeyCode.D))
{
Button[] buttonChilds = gameObject.GetComponentsInChildren<Button>();
List<Button> buttonList = new List<Button>(buttonChilds); int nCount = buttonList.Count;
if (nCount > 1)
{
Button tmpButton = buttonList[nCount - 1];
Destroy(tmpButton.gameObject);
}
}

利用 GetAxis 可以制作摇杆(键盘的 上、下、左、右,以及 A、W、S、D),来对游戏对象进行移动(Translate)、旋转(Rotate)。返回值的范围是[-1, 1],可以自行设定间隔大小,比如每次只增、减0.01,详情可查看官网的视频:https://unity3d.com/cn/learn/tutorials/topics/scripting/getaxis

Unity的Input输入的更多相关文章

  1. 【转】unity3d input输入

    Input 输入 按键 Input.GetKey(“up”) = Input.GetKey(KeyCode.UpArrow) 按住键盘上键 Input.GetKeyDown (“up”) 按下键盘上键 ...

  2. input输入样式,动画

    模板描述:input输入样式 动画,有输入框也有搜索框的样式,多种多样,大家根据自己的喜欢来. 找网站SEO教程,网站模板,以及想要建立个人博客的朋友来涂志海个人博客网,这里有你想要的一切(万一没有的 ...

  3. input输入子系统

    一.什么是input输入子系统? 1.Linux系统支持的输入设备繁多,例如键盘.鼠标.触摸屏.手柄或者是一些输入设备像体感输入等等,Linux系统是如何管理如此之多的不同类型.不同原理.不同的输入信 ...

  4. 限制input输入类型(多种方法实现)

    1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste= ...

  5. 限制Input输入类型的常见代码集合

    搜集整理常见的限制INPUT输入类型的实现方式: 1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g ...

  6. 使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体

    今天在接入android支付宝 SDK时,打包运行时,发现使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体,查找一下发现是与android交互存在的问题, 只需在A ...

  7. ARM Linux内核Input输入子系统浅解

    --以触摸屏驱动为例 第一章.了解linux input子系统         Linux输入设备总类繁杂,常见的包括有按键.键盘.触摸屏.鼠标.摇杆等等,他们本身就是字符设备,而linux内核将这些 ...

  8. input输入限制,只允许输入数字和“.”,长度不得超过20

    <input style="margin-top: 10px;width: 100%;text-align:center;" id="removeArea" ...

  9. elementUi中input输入字符光标在输入一个字符后,光标失去焦点

    elementUi中input输入字符光标在输入一个字符后,光标就退出,无法输入需要再次聚焦然后输入一个字符又再次退出 首先,用elementUi正常用v-model绑定输入的值是不会造成光标退出的, ...

随机推荐

  1. Codeforces 1076F Summer Practice Report dp

    Summer Practice Report dp[ i ][ 0 ]表示放完前 i 页, 第 i 页最后一段是 0, 0个数的最小值. dp[ i ][ 1 ]表示放完前 i 页, 第 i 页最后一 ...

  2. selenium 常见面试题以及答案

    1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如 ...

  3. 创建自己的composer包

    需求:在项目中输入 p($arr); 将会格式化输出 一.在GitHub上创建仓库 1.1这个仓库必须包含composer.json文件,内容如下. { "name": " ...

  4. Java版统计文件中的每个单词出现次数

    正则表达式之Pattern和Matcher,请参见转载博客    http://www.cnblogs.com/haodawang/p/5967219.html 代码实现: import java.i ...

  5. 第K人||约瑟夫环(链表)

    http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4442 很容易超时 通过数组来记录,删除 //数组从1开始好像不行 后面一些数字就乱码了,因 ...

  6. POJ 1733 Parity game 【带权并查集】+【离散化】

    <题目链接> 题目大意: 一个由0,1组成的序列,每次给出一段区间的奇偶,问哪一条信息不合法. 解题分析: 我们用s[i]表示前i个数的前缀和,那么a b even意味着s[b]和s[a- ...

  7. 服务链路追踪---Sleuth

    Sleuth:日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案. 当服务与服务之间调用复杂时,Sp ...

  8. react组件通信那些事儿

    父组件是调用组件的组件.现在看来,感觉父组件就是一个壳子,定义好壳子里面会有什么,而子组件是一个具体的实现,说明,会用到什么东西,如果有这些东西,会进行什么操作.总之,父组件是材料,有水和泥,子组件告 ...

  9. MacOs brew 命令行安装常见工具

    brew类似ubuntu系统下的apt-get的功能 安装方法:  在Mac中打开Termal:  输入命令: ruby -e "$(curl -fsSL https://raw.githu ...

  10. 【Intellij IDEA】eclipse项目导入

    intellij idea中文资料网上比较少,对于eclipse的项目如何导入intellij idea也没有完整的说明,本人在这里整理下,方便更多人加入到intellij idea的阵容里. 直接上 ...