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. html,css,jquery,JavaScript

    1.全选 (当点击checkall按钮时,选中所有checkbox用prop全选上)function checkAll() { $(':checkbox').prop('checked', true) ...

  2. shell 命令 查看本机ip

    ifconfig 结果有很多,查看env0的inet,就是本机的ip地址

  3. allegro中如何添加安装孔(注:在PCB图纸中添加)

    最近再给外国一家公司做某一个小的系统模块的封装,其中这个模块中间是挖空的,这就比较难办,到现在为止我还没有找到如何在封装中添加自己绘制特定形状的过孔,(倒是可以添加软件自带的一些圆形的安装孔)最终解决 ...

  4. Linked List

    链表是线性表的一种.线性表是最基本,最简单也是最常见的一种数据结构.线性表中数据元素之间的关系是一对一的关系,除了第一个和最后一个数据元素外,其他数据元素都是首尾相接的. 线性表有两种存储方式,一种是 ...

  5. 没那么难,谈CSS的设计模式

    没那么难,谈CSS的设计模式 来源: 灵感的小窝  发布时间: 2016-09-09 16:46  阅读: 8949 次  推荐: 27   原文链接   [收藏]   什么是设计模式? 曾有人调侃, ...

  6. KNIME + Python = 数据分析+报表全流程

    Python 数据分析环境 数据分析领域有很多可选方案,例如SPSS傻瓜式分析工具,SAS专业性商业分析工具,R和python这类需要代码编程类的工具.个人选择是python这类,包括pandas,n ...

  7. redis-master/slave模式

    类似mysql的master-slave模式一样,redis的master-slave可以提升系统的可用性,master节点写入cache后,会自动同步到slave上. 环境: master node ...

  8. .Net下EF的简单实现

    1.连接SQLServer,创建数据库TestDB; 2.添加EF引用,点击工具-NuGet包管理器-管理解决方案的NuGet程序包, 搜索EntityFramework包,点击安装: 3.在Web. ...

  9. PHP eval函数

    代码: eval("echo'hello world';"); 上边代码等同于下边的代码: echo"hello world"; 在浏览器中都输出:hello ...

  10. raspberry pi wifi

    vim /etc/network/interfaces 修改 wpa-ssid 和 wpa-psk