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. Python学习(二) —— 运算符

    一:Python的编码 python2的默认编码是ascii码,而python3的默认编码是utf-8 ASCII(American Standard Code for Information Int ...

  2. python josn包

    Python josn包中的编码与解码方法 对于Python数据类型进行编码解码 json.dumps  对python的数据类型进行json格式编码 :(将dict转为json格式) eg: imp ...

  3. 无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换

    无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换 前言: Maya 集成了 PySide,同时集成了qt designer,在 Maya 的安装目录下的 bin ...

  4. AspectJ(AOP)切面获取参数名称和参数

    @Async @AfterReturning(value ="execution(public * com.zhx.recharge.service.RechargeService.buil ...

  5. A - Character Encoding HDU - 6397 - 方程整数解-容斥原理

    A - Character Encoding HDU - 6397 思路 : 隔板法就是在n个元素间的(n-1)个空中插入k-1个板,可以把n个元素分成k组的方法 普通隔板法 求方程 x+y+z=10 ...

  6. 如何做出一个更好的Machine Learning预测模型【转载】

    作者:文兄链接:https://zhuanlan.zhihu.com/p/25013834来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 初衷 这篇文章主要从工程角度来 ...

  7. opencv3 学习笔记(二)

    1.OpenCv 颜色追踪 import cv2import numpy as npcap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1 ...

  8. RESTful restful api Representational State Transfer

    通俗直白讲:REST是一种编写风格,一种API接口规范.它的风格就是将对象(如学生)的状态(如增删改查,API接口版本号等等)通过其他方式传递,API的接口地址突显出描述的对象. -- == REST ...

  9. SQL的多种JOIN

  10. 2046 ACM 数学

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2046 思维:与之前有两道题目相似,n可以由n-1和n-2递推过来.f(n)=f(n-1)*1+f(n-2) ...