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绑定输入的值是不会造成光标退出的, ...
随机推荐
- python全栈开发day54-mysql库操作、表操作、数据类型、完整性约束
一.昨日内容回顾 1.mysql的安装 1).解压文件 添加环境变量bin 2).初始化mysql生成数据data文件夹: mysqld --initialize-insecure 3).mysqld ...
- Kafka/Zookeeper集群的实现(二)
[root@kafkazk1 ~]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12. ...
- 修改input 的 placeholder
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #666!important; } inp ...
- Codeforces 1012D AB-Strings 贪心
原文链接https://www.cnblogs.com/zhouzhendong/p/CF1012D.html 题目传送门 - CF1012D 题意 给定字符串 $s,t$ ,其中只包含小写字母 $a ...
- P1030 求先序排列 P1305 新二叉树
题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度\le 8≤8). 输入输出格式 输入格式: 22行,均为大写字母组成的字符串,表示一棵二叉树的中序与 ...
- Kafka命令行操作及常用API
一.Kafka命令行操作 1.查看当前集群已存在的主题 bin/kafka-topic.sh --zookeeper hd09-01:2181 --list 2.创建主题 bin/kafka-topi ...
- Masquerade strikes back Gym - 101911D (数学)
Quite often the jury of Saratov SU use the problem "Masquerade" in different practice sess ...
- Ajax技术使用(一)
Ajax技术使用 目录 AJAX介绍 XMLHttpRequest 请求和响应 onreadystatechange 事件 AJAX介绍 什么是 AJAX AJAX = 异步 JavaScript 和 ...
- vue笔记-模板,计算属性,class与style,data属性
数据和方法 1:只有当实例被创建时 data 中存在的属性才是响应式的,也可以预定义一些空的属性,唯一的意外就是Object.freeze(obj),这会阻止修改现有的属性;也就是说一个数据在放到根实 ...
- JavaIO流中的拷贝
JavaIO流中对数据的操作尤为重要,掌握了基本的拷贝操作,才能将各种数据源的操作联系起来. 先来看看对文件夹的拷贝吧: /** * 利用递归实现文件夹的拷贝操作 * 分析:判断 * 是文件:调用拷贝 ...