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的更多相关文章

  1. 【Unity】7.1 Input类的方法和变量

    分类:Unity.C#.VS2015 创建日期:2016-04-21 一.简介 在Input类中,Key与物理按键对应,例如键盘.鼠标.摇杆上的按键,其映射关系无法改变,程序员可以通过按键名称或者按键 ...

  2. Java用Scanner类获取用户输入

    用Java编写程序时,有些数据需要用户输入,这个时候需要调用java提供的Scanner类,这个类在包java.util下,比如求一个矩形的面积,简单的看一下用法: import java.util. ...

  3. 控制input标签中只能输入数字以及小数点后两位

    js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...

  4. input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格

    以下代码:input验证码框,输入非数字或非12位时,红框提示;每4位加一个空格 //input验证码框,输入非数字或非12位时,红框提示;每3位加一个空格 $(".text"). ...

  5. input框只允许输入正整数、正数(包含小数)的解决方法 vue.js实现

    我来打自己脸了!!!!...刚刚发现在中文输入法下是无效的,有人能解决这个问题么 如果要求input只能输入数字怎么做? 设置type="number" ? 那我如果想限制长度,此 ...

  6. input输入框只允许输入数字

    /* input输入框只允许输入数字*/ <input type="text" onkeypress="keyPress()" > function ...

  7. 自定义异常类;键盘输入;try catch用法

    相关考点:自定义异常类:键盘输入:try catch用法 1.设计一个java程序,自定义一个异常类,从键盘输入一个字符串,如果等于“abc”,则抛出异常. public class MyExcept ...

  8. Input类中常用的验证方式

    Deolin一般将Input类对象作为POST请求方法的参数, Input类的域与前端的数据结构一一对应,由于后端不应该相信前端传过来的任何数据, 所以前端的数据对象先绑定到Input对象中,通过JS ...

  9. Vue input 控件: 通过自定义指令(directive)使用正则表达式限制input控件的输入

    前言: 网站中的input输入框使用非常广泛,因业务场景不同需要对输入框做合法性校验或限制输入,比如电话号码.邮件.区号.身份证号等.input框的不合法内容主要有两种方式处理:1.用户输入内容后,通 ...

随机推荐

  1. 6.Django扩展

    富文本编辑器 借助富文本编辑器,管理员能够编辑出来一个包含html的页面,从而页面的显示效果,可以由管理员定义,而不用完全依赖于前期开发人员 此处以tinymce为例,其它富文本编辑器的使用可以自行学 ...

  2. 雪花算法(snowflake)delphi版

    雪花算法简单描述: + 最高位是符号位,始终为0,不可用. + 41位的时间序列,精确到毫秒级,41位的长度可以使用69年.时间位还有一个很重要的作用是可以根据时间进行排序. + 10位的机器标识,1 ...

  3. NPOI自适应列宽

    当本地没有安装Excel,但是又想导出Excel,采用Office插件是行不通的,NPOI是导出Excel的一个开源的插件.在导出Excel后,为了方便阅读,可以才采用自适应列宽的方式使得单元格的宽度 ...

  4. Oracle.ManagedDataAccess.Client.OracleException:“ORA-00936: 缺失表达式”

    static void Main(string[] args) { string sql = "insert into StudentC(Stuid, Stuname, Stupass) v ...

  5. WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)

    现在新建的WTS模板,默认最低版本是16299了,目标版本是17134 17134到来之前,就感觉到会这样,不过终究还是来了. 不支持15063的原因是导航菜单Windows.UI.Xaml.Cont ...

  6. MVVM双向绑定实现之Object.defineProperty

    随着web应用的发展,直接操作dom的应用已渐行渐远,取而代之的是时下越来越流行的MVVM框架,dom操作几乎绝迹,这里面自然是框架底层封装的结果.MVVM框架的双向数据绑定使开发效率大大提高:然后在 ...

  7. 常见配置redis.conf介绍

    参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程  daemonize no2. 当Redis以守护进程方式运行 ...

  8. Unity LuaFramework LuaBundleMode

    设置 AppConst.cs 中的 LuaBundleMode 为 true,开启 Lua 代码 AssetBundle 模式. 启动程序报错,Moudle XXX not found. 我在 Ass ...

  9. http://www.vaikan.com/docs/jquery.form.plugin/jquery.form.plugin.html#getting-started

    http://www.vaikan.com/docs/jquery.form.plugin/jquery.form.plugin.html#getting-started Jquery.Form 异步 ...

  10. iOS---代理、协议、通知 详解

    一.代理 1.代理的介绍 代理是一种通用的设计模式 代理使用方式:A 让 B 做件事,空口无凭,签个协议. 所以代理有三部分组成: 委托方: 定义协议 协议   : 用来规定代理方可以做什么,必须做什 ...