当前位置: 首页 > news >正文

Unity:输入系统(Input System)与持续检测键盘按键(Input.GetKey)

目录

Unity 的两套输入系统:

🔍 Input.GetKey 详解

🎯 对比:常用的输入检测方法

技术底层原理(简化版)

示例:角色移动 

为什么会被“新输入系统”替代?


Unity 的两套输入系统:

系统名称使用方式是否需要安装
旧输入系统UnityEngine.InputInput.GetKey()Input.GetAxis()❌ 不需要
新输入系统UnityEngine.InputSystemKeyboard.current.spaceKey.wasPressedThisFrame✅ 需要安装 Input System 包

Input.GetKey() 是 Unity 的旧输入系统(Old Input System)中用来检测键盘按键是否“持续按下”的方法。

Input.GetKey() 属于 Unity 的 旧版输入系统(Legacy Input System),也叫做:

✅ UnityEngine.Input

它来自 Unity 的核心命名空间:

using UnityEngine;

 而不是新的 Input System 包(那个要安装)。

 

🔍 Input.GetKey 详解

用法:

if (Input.GetKey(KeyCode.Space)) {// 玩家按住了空格键,执行跳跃蓄力
}

参数:

KeyCode 是 Unity 定义的一个枚举,包含了键盘上所有按键的标识:

KeyCode.A         // 字母 A 键
KeyCode.Space     // 空格键
KeyCode.LeftArrow // 左方向键
KeyCode.Return    // 回车键

🎯 对比:常用的输入检测方法

方法中文解释检测什么?类比
Input.GetKey(KeyCode.X)是否“持续”按下按键 X按着的时候每帧都为 true持续踩油门
Input.GetKeyDown(KeyCode.X)是否“在这一帧刚刚按下”按键 X只在按下的那一帧为 true点一下油门
Input.GetKeyUp(KeyCode.X)是否“在这一帧刚刚松开”按键 X只在松开的那一帧为 true抬脚松油门

技术底层原理(简化版)

在 Unity 的旧输入系统中:

  • Unity 会每帧读取当前操作系统的键盘状态

  • Input.GetKey() 就是访问这个“键盘状态快照”的一个函数

  • 它只在 MonoBehaviour 的 Update()FixedUpdate() 中有效

 ❗ 注意:你不能在 Awake()Start() 里用 GetKey(),因为那时候 Unity 还没开始检测输入帧。

示例:角色移动 

void Update() {if (Input.GetKey(KeyCode.RightArrow)) {transform.Translate(Vector2.right * speed * Time.deltaTime);}
}

这个例子做了什么?

  • 每帧检测玩家是否按住右方向键

  • 如果按住,就让角色持续向右移动

为什么会被“新输入系统”替代?

Unity 推出新的 Input System 原因:

旧输入系统的问题新系统的优势
不能支持多个输入设备(键盘 + 手柄 + 触屏)可以一次支持多个设备,统一映射
不支持自定义按键重映射可以创建用户配置的输入动作
不支持输入事件/异步支持事件驱动,响应更快
不支持多人本地输入支持多人同时使用不同设备

不过很多 2D 游戏和初学项目,用旧系统就很够用,而且更简单。

 

相关文章:

  • win10开了移动热点,手机无法连接,解决办法(chatgpt版)
  • socket,http
  • 基于python的哈希查表搜索特定文件
  • 查看Ubuntu版本
  • (41)VTK C++开发示例 ---qt使用vtk最小示例
  • 科创大赛——知识点复习【c++】——第一篇
  • Flink流水线任务在线演示
  • 《类和对象(上)》
  • Python 整理3种查看神经网络结构的方法
  • 虚幻引擎作者采访
  • 什么是原码、反码与补码?
  • 2025流感疫苗指南+卫健委诊疗方案|高危人群防护+并发症处理 慢性肾脏病饮食指南2025卫健委版|低盐低磷食谱+中医调理+PDF 网盘下载 pdf下载
  • 牛客1018逆序数-归并排序
  • 金融的本质是智融、融资的实质是融智、投资的关键是投智,颠覆传统金融学的物质资本中心论,构建了以智力资本为核心的新范式
  • PyTorch 张量与自动微分操作
  • 全球化电商平台Azure云架构设计
  • 期末代码Python
  • iptables的基本选项及概念
  • 串 Part 1
  • 数据链路层(MAC 地址)
  • 联合国秘书长古特雷斯呼吁印巴保持最大克制
  • 解放军仪仗司礼大队仪仗分队参加纪念苏联伟大卫国战争胜利80周年阅兵活动
  • 2年就过气!ChatGPT催生的百万年薪岗位,大厂不愿意招了
  • 空间站第八批科学实验样品返抵地球并交付科学家
  • 来上海喝云南咖啡!上海国际咖啡文化节助力咖啡产业破圈出海
  • 美国务院宣布新一轮与伊朗相关的制裁