U3D Input类之键位输入GetKey
Input类中包含许多属性和方法,下面介绍一下和键盘输入有关的内容
一、有关接收键盘信息的属性
| 属性名 | 类型 | 属性类型 | 含义 |
| anyKey | bool | get | 当前是否按住任意键或鼠标按钮 |
| anyKeyDown | bool | get | 是否按下任意键 |
using UnityEngine; public class Example : MonoBehaviour
{
// Detects if any key has been pressed. void Update()
{
if (Input.anyKey)
{
Debug.Log("A key or mouse click has been detected");
}
}
}
using UnityEngine; public class Example : MonoBehaviour
{
// Detects if any key has been pressed down. void Update()
{
if (Input.anyKeyDown)
{
Debug.Log("A key or mouse click has been detected");
}
}
}
注:对于anyKeyDown,您应该从Update函数中轮询此变量,因为每个帧都会重置状态。在用户释放所有键/按钮并再次按下任何键/按钮之前,它不会返回true。
二、键盘按键的keyCode键码
在网上看到别人关于键码的内容非常详细,这里就直接上链接了
点击查看:keyCode键码大全
三、有关接收键盘信息的方法
3.1 public static bool GetKey(KeyCode key)
参数:key———键盘上的某个键。
返回值:bool———当通过名称指定的按键被用户按住时返回true
using UnityEngine;
using System.Collections; public class ExampleClass : MonoBehaviour
{
void Update()
{
if (Input.GetKey(KeyCode.UpArrow))
{
print("up arrow key is held down");
} if (Input.GetKey(KeyCode.DownArrow))
{
print("down arrow key is held down");
}
}
}
它还有一个重载方法: public static bool GetKey(string name),它的参数为字符串
using UnityEngine;
using System.Collections; public class ExampleClass : MonoBehaviour
{
void Update()
{
if (Input.GetKey("up"))
{
print("up arrow key is held down");
} if (Input.GetKey("down"))
{
print("down arrow key is held down");
}
}
}
3.2 public static bool GetKeyDown(KeyCode key)
当用户按下指定名称的按键期间的帧返回true。
您需要从Update函数调用此函数,因为每个帧都会重置状态。在用户释放该键并再次按下该键之前,它不会返回true。
using UnityEngine;
using System.Collections; public class ExampleClass : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
print("space key was pressed");
}
}
}
重载方法:public static bool GetKeyDown(string name)
3.3 public static bool GetKeyUp(KeyCode key)
在用户释放给定名字的按键的那一帧返回true。
您需要从Update函数调用此函数,因为每个帧都会重置状态。在用户按下键并再次释放它之前,它不会返回true。
using UnityEngine; public class Example : MonoBehaviour
{
void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
{
print("space key was released");
}
}
}
重载方法:public static bool GetKeyUp(string name)
下面例子演示了如何使物体随着按键的方向移动
void Update()
{
if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D))
dir = Vector2.right;
else if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.A))
dir = Vector2.left;
else if (Input.GetKey(KeyCode.DownArrow) || Input.GetKey(KeyCode.S))
dir = Vector2.down;
else if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.W))
dir = Vector2.up;
}
U3D Input类之键位输入GetKey的更多相关文章
- 【Unity】7.1 Input类的方法和变量
分类:Unity.C#.VS2015 创建日期:2016-04-21 一.简介 在Input类中,Key与物理按键对应,例如键盘.鼠标.摇杆上的按键,其映射关系无法改变,程序员可以通过按键名称或者按键 ...
- Java用Scanner类获取用户输入
用Java编写程序时,有些数据需要用户输入,这个时候需要调用java提供的Scanner类,这个类在包java.util下,比如求一个矩形的面积,简单的看一下用法: import java.util. ...
- 控制input标签中只能输入数字以及小数点后两位
js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...
- input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格
以下代码:input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格 //input验证码框,输入非数字或非12位时,红框提示;每3位加一个空格 $(".text"). ...
- input框只允许输入正整数、正数(包含小数)的解决方法 vue.js实现
我来打自己脸了!!!!...刚刚发现在中文输入法下是无效的,有人能解决这个问题么 如果要求input只能输入数字怎么做? 设置type="number" ? 那我如果想限制长度,此 ...
- input输入框只允许输入数字
/* input输入框只允许输入数字*/ <input type="text" onkeypress="keyPress()" > function ...
- 自定义异常类;键盘输入;try catch用法
相关考点:自定义异常类:键盘输入:try catch用法 1.设计一个java程序,自定义一个异常类,从键盘输入一个字符串,如果等于“abc”,则抛出异常. public class MyExcept ...
- Input类中常用的验证方式
Deolin一般将Input类对象作为POST请求方法的参数, Input类的域与前端的数据结构一一对应,由于后端不应该相信前端传过来的任何数据, 所以前端的数据对象先绑定到Input对象中,通过JS ...
- Vue input 控件: 通过自定义指令(directive)使用正则表达式限制input控件的输入
前言: 网站中的input输入框使用非常广泛,因业务场景不同需要对输入框做合法性校验或限制输入,比如电话号码.邮件.区号.身份证号等.input框的不合法内容主要有两种方式处理:1.用户输入内容后,通 ...
随机推荐
- python编写producer、consumer
自主producer.consumer 首先在不同的终端,分别开启两个consumer,保证groupid一致 ]# python consumer_kafka.py 执行一次producer ]# ...
- AngularJS ngTemplate寄宿方式 模板缓存 $templateCache
AngularJS的指令中经常定义模板(template或templateUrl),可以选择将Html模板直接寄宿在WEB容器中,如Tomcat.IIS.Nginx.NodeJs Express,也可 ...
- Python自动化开发 - 函数式编程
本节内容 一.函数式编程 二.高阶函数 1.变量可以指向函数 2.函数名也是变量 3.传入函数 三.返回函数 1.函数作为返回值 2.闭包特性 一.函数式编程 函数是Python内建支持的一种封装,我 ...
- Latex 表格(跨行、跨列、背景加灰)new
一. 效果如图 二.代码如下 1. 首部增加宏包: \usepackage{multirow} 2. 正文部分增加: \begin{table} \centering \caption{Suspici ...
- [LintCode] 拓扑排序
http://www.lintcode.com/zh-cn/problem/topological-sorting/# 给定一个有向图,图节点的拓扑排序被定义为: 对于每条有向边A--> B,则 ...
- mysql rand
在where语句中,rand有时候会出现多条记录
- java解决共享资源竞争
由于多线程的实现,在运行一个程序的时候可能会有很多的线程在同时运行,但是线程的调度并不是可见的,所以不会知道一个线程什么时候在运行,比如说 你坐在桌子前手拿着叉子,正要去叉盘中的最后一片食物,当你的叉 ...
- Winform生成安装程序时配置自启动
1.右击安装编辑程序,在“视图”菜单中,选择“注册表”. 2.创建“键”:HKCU\Software\Microsoft\Windows\CurrentVersion\Run 3.右键Run,新建“字 ...
- 二、winForm-DataGridView操作——DataGridView 操作、属性说明
注册:Form加载窗体代码 /// <summary> /// 窗体加载Form1 /// </summary> /// <param name="sender ...
- Unity项目接入应用宝SDK实现截图功能
Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...