Unity的Input输入
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输入的更多相关文章
- 【转】unity3d input输入
Input 输入 按键 Input.GetKey(“up”) = Input.GetKey(KeyCode.UpArrow) 按住键盘上键 Input.GetKeyDown (“up”) 按下键盘上键 ...
- input输入样式,动画
模板描述:input输入样式 动画,有输入框也有搜索框的样式,多种多样,大家根据自己的喜欢来. 找网站SEO教程,网站模板,以及想要建立个人博客的朋友来涂志海个人博客网,这里有你想要的一切(万一没有的 ...
- input输入子系统
一.什么是input输入子系统? 1.Linux系统支持的输入设备繁多,例如键盘.鼠标.触摸屏.手柄或者是一些输入设备像体感输入等等,Linux系统是如何管理如此之多的不同类型.不同原理.不同的输入信 ...
- 限制input输入类型(多种方法实现)
1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste= ...
- 限制Input输入类型的常见代码集合
搜集整理常见的限制INPUT输入类型的实现方式: 1.只能输入和粘贴汉字 <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g ...
- 使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体
今天在接入android支付宝 SDK时,打包运行时,发现使用Unity NGUI-InputField组件输入时发现显示为白色就是看不到字体,查找一下发现是与android交互存在的问题, 只需在A ...
- ARM Linux内核Input输入子系统浅解
--以触摸屏驱动为例 第一章.了解linux input子系统 Linux输入设备总类繁杂,常见的包括有按键.键盘.触摸屏.鼠标.摇杆等等,他们本身就是字符设备,而linux内核将这些 ...
- input输入限制,只允许输入数字和“.”,长度不得超过20
<input style="margin-top: 10px;width: 100%;text-align:center;" id="removeArea" ...
- elementUi中input输入字符光标在输入一个字符后,光标失去焦点
elementUi中input输入字符光标在输入一个字符后,光标就退出,无法输入需要再次聚焦然后输入一个字符又再次退出 首先,用elementUi正常用v-model绑定输入的值是不会造成光标退出的, ...
随机推荐
- Visio制图之垮职能流程图
Visio制图中常用的一种就是带有不同职能,不同阶段的流程关系图. 下面是根据实际生产情况制作的一张“软件生产流程关系图”,供参考.
- Python连接mysql出错,_mysql_exceptions.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
- img没有src属性时自动出现边框
当img没有接收到src属性的时候会自动出现边框,border:0/none都不管用的情况下 解决方法 一行css 可以解决 img[src=""],img:not([src]){ ...
- 044 hive与mysql两种数据源之间的join
这篇文章是基于上一篇文章的续集 一:需求 1.图形表示 二:程序 1.程序. package com.scala.it import java.util.Properties import org.a ...
- 025 SSM简单搭建
参考了同事的文档,自己也写一篇文档. 同时,补充了一下,程序是如何运行的. 一:SSM框架 1.说明 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC ...
- Http和RPC区别
本文转自:https://blog.csdn.net/mou_it/article/details/79873612 RPC(即Remote Procedure Call,远程过程调用)和HTTP(H ...
- sql语句start with connect by prior语法解析
prior分两种放法: 1 放在子节点端 表示start with 指定的节点作为根节点,按照从上到下的顺序遍历 2 放在父节点端 表示start with指定的节点作为最底层节点,按照从下到上的顺序 ...
- POJ 1236 Network Of Schools 【Targan】+【缩点】
<题目链接> 题目大意: 有N个学校,每个学校之间单向可以发送软件,现在给你一些学校之间的收发关系.问你下面两个问题:至少要给多少个学校发送软件才能使得最终所有学校都收到软件:至少要多加多 ...
- UVa11988 Broken Keyboard 损坏的键盘【list】
题目链接:https://vjudge.net/problem/UVA-11988 题目大意: 键盘的home键和end键出现了问题. 在输入一段文本时,home键或end键可能会自动被按下,home ...
- Jenkins环境搭建(3)-配置自动发送邮件
紧接上一篇博文继续来完善Jenkins自动构建环境的搭建,今天来分享下配置邮件,构建任务后,自动发送邮件到指定邮箱 配置邮件分为两部分,第一部分是在系统管理中的系统设置中配置,第二部分是在任务中配置 ...