Unity游戏输入系统(新版+旧版)
使用新版还是旧版


旧版
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class c5 : MonoBehaviour
{void Start(){}void Update(){// 注意要在游戏中 点鼠标键盘进行测试// 鼠标// 0左键 1右键 2滚轮if (Input.GetMouseButtonDown(0)){Debug.Log("按下");}// 持续按下鼠标按键if (Input.GetMouseButton(0)){Debug.Log("持续鼠标");}// 松开鼠标if (Input.GetMouseButtonUp(0)){Debug.Log("松开鼠标");}// 键盘// 按下if (Input.GetKeyDown(KeyCode.A)){Debug.Log("按下A键");}// 持续// if (Input.GetKey(KeyCode.A)) // 写法1if (Input.GetKey("a")) //写法2{Debug.Log("持续A键");}// 松开if (Input.GetKeyUp(KeyCode.A)){Debug.Log("松开A键");}}
}
新版
1、安装



安装新版后,在 [编辑-> 项目设置-> 玩家-> 其他设置-> 输入活动 ]处理中设置,新版或者两个。
2、设置
安装后,首先要挂新版的组件 “Playre Input”,使用搜索,输入Input。

3、新建 Input Aactions


4、设置键位
双击新建的文件,出现下面的菜单。
若想使用键盘:keyboard --> By Location of Key(Using US Layout) --> 选择按键。 

若想使用鼠标:Mouse --> left Button(左键)


5、使用设置好的文件

还需要使用脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 导入新版 游戏操作系统
using UnityEngine.InputSystem;public class c6 : MonoBehaviour
{// 声明PlayerInput input;void Start(){// 获取 新游戏操作系统的组件input = GetComponent<PlayerInput>();// 如需切换 另一套动作// input.SwitchCurrentActionMap("动作名字");// 开启该动作input.currentActionMap.Enable();// 获取 按下动作事件 (跳跃)input.actions["Jump"].performed += Jump;// 获取 松开动作事件 (跳跃)input.actions["Jump"].canceled += Jump;// 获取 按下动作事件 (攻击)input.actions["Attack"].performed += Attack;}/*private void Update(){// 获取Move的Vector2向量 (我设置了一个手柄的按键)Vector2 v = input.actions["Move"].ReadValue<Vector2>();Debug.Log("水平轴:" + v.x + ", 垂直轴:" + v.y);}*/// 攻击函数private void Attack(InputAction.CallbackContext obj){Debug.Log("按下攻击");}// 跳跃函数private void Jump(InputAction.CallbackContext obj){if (obj.performed == true){Debug.Log("按下跳跃");}if (obj.canceled == true){Debug.Log("松开跳跃");}}}
以上完成了,跳跃和攻击的绑定。
效果如下:

设定上下左右
将4个绑定按键






asd就不截图了,都一样。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 导入新版 游戏操作系统
using UnityEngine.InputSystem;public class c6 : MonoBehaviour
{// 声明PlayerInput input;void Start(){// 获取 新游戏操作系统的组件input = GetComponent<PlayerInput>();// 如需切换 另一套动作// input.SwitchCurrentActionMap("动作名字");// 开启该动作input.currentActionMap.Enable();// 获取 按下动作事件 (跳跃)input.actions["Jump"].performed += Jump;// 获取 松开动作事件 (跳跃)input.actions["Jump"].canceled += Jump;// 获取 按下动作事件 (攻击)input.actions["Attack"].performed += Attack;}private void Update(){// 获取Move的Vector2向量 (我设置了一个手柄的按键)Vector2 v = input.actions["Move"].ReadValue<Vector2>();Debug.Log("水平轴:" + v.x + ", 垂直轴:" + v.y);}// 攻击函数private void Attack(InputAction.CallbackContext obj){Debug.Log("按下攻击");}// 跳跃函数private void Jump(InputAction.CallbackContext obj){if (obj.performed == true){Debug.Log("按下跳跃");}if (obj.canceled == true){Debug.Log("松开跳跃");}}}
按键后可观察到,两个轴的数值发生变化。
相关文章:
Unity游戏输入系统(新版+旧版)
使用新版还是旧版 旧版 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c5 : MonoBehaviour {void Start(){}void Update(){// 注意要在游戏中 点鼠标键盘进行测试// 鼠标// 0左键 1右键 2滚轮if (Input.GetMouseButtonDown(0)…...
区块链媒体:链游媒体宣发渠道9个方法分享-华媒舍
在当今的游戏市场中,要想让自己开发的游戏脱颖而出,宣传策略的选择也至关重要。链游媒体是一种有效的宣发渠道,通过它们可以向广大玩家推广游戏并提高知名度。下面介绍9个链游媒体宣发渠道,帮助你的游戏走向成功。 1. 游戏公众号 …...
LeetCode--42
42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,…...
【解决】虚幻导入FBX模型不是一个整体
问题: 现在有一个汽车的fbx模型,导入虚幻引擎,导入后变成了很多汽车零件模型。 解决: 把“合并网格体”勾选上,解决问题。...
第四十八回 解珍解宝双越狱 孙立孙新大劫牢-Python模块和包概念与使用
吴用对宋江说,有个人,他是石勇的关系,与祝家庄的峦廷玉关系好,还是杨林、邓飞的老相识,他有一计.... 原来在宋江攻打祝家庄的时间段,山东海边登州也发生了一件事。登州山下有一家猎户,弟兄两个…...
【Spring连载】使用Spring Data访问 MongoDB----对象映射之属性转换器
【Spring连载】使用Spring Data访问 MongoDB----对象映射之属性转换器 一、声明式值转换器二、编程式值转换器注册三、MongoCustomConversions配置 虽然基于类型的转换已经提供了影响目标存储中某些类型的转换和表示的方法,但当仅考虑特定类型的某些值或属性进行转换…...
【axiox】前后端接口通讯数据交互
重要全局配置: axios.create(); 设置axios请求的公共配置信息。 service.interceptors.request.use((config)>{}) 请求拦截器 service.interceptors.response.use((res)>{},(err)>{}) 响应拦截器 const source axios.CancelToken.source(); 用…...
《Linux C编程实战》笔记:共享内存
共享内存是分配一块能被其他进程访问的内存。每个共享内存段在内核中维护一个内部数据结构shmid_ds(和消息队列、信号量一样),该结构定义在头文件linux/shm.h中,这是我从源码里抄的 #include<linux/shm.h> struct shmid_ds {struct ipc_perm shm_perm; /* 操…...
【GitHub】修改默认分支
GitHub的默认分支为main,但我们常常习惯使用master作为默认分支,那在GitHub上如何将master修改为默认分支呢? 全局修改 点击头像,选择菜单栏中的设置 输入master作为默认分支,然后执行updating即可! 单项…...
常用Linux 命令汇总
1、基本命令 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架构 uname -m 显示…...
13 双口 RAM IP 核
双口 RAM IP 核简介 双口 RAM IP 核有两个端口,它又分为伪双端口 RAM 和真双端口 RAM,伪双端口 RAM 一个端口只能读,另一个端口只能 写,真双端口 RAM 两个端口都可以进行读写操作。同时对存储器进行读写操作时就会用到双端口 RAM…...
【高级数据结构】Trie树
原理 介绍 高效地存储和查询字符串的数据结构。所以其重点在于:存储、查询两个操作。 存储操作 示例和图片来自:https://blog.csdn.net/qq_42024195/article/details/88364485 假设有这么几个字符串:b,abc,abd&…...
国际化 Vue-i18n的安装与使用 (Vue2.0 / Vue3.0)
国际化 Vue-i18n的安装与使用 (Vue2.0 / Vue3.0) 一、Vue-i18n是什么? Vue-I18n是 Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中。简单来说就是可以帮助用户进行语言的切换” 二、使用步骤 1.引入库 代码…...
Linux 学习笔记(8)
八、 启动引导 1 、 Linux 的启动流程 1) BIOS 自检 2) 启动 GRUB/LILO 3) 运行 Linux kernel 并检测硬件 4) 挂载根文件系统 5) 运行 Linux 系统的第一个进程 init( 其 PID 永远为 1 ,是所有其它进程的父进程 ) 6) init 读取系统引导配置文件…...
【python】1.python3.12.2和pycharm社区版的安装指南
欢迎来CILMY23的博客喔,本篇为【python】1.python3.12.2和pycharm社区版的安装指南,感谢观看,支持的可以给个一键三连,点赞关注收藏。 目录 一、python3.12.2的下载与安装 1.1下载 1.2安装 二、pycharm的安装 2.1下载安装 2…...
Ubuntu将c++编译成.so文件并测试
一、准备cpp和h文件 创建test.cpp 在cpp中定义相加的函数funcAdd,给出函数的细节代码 #include <iostream> using namespace std;int funcAdd(int x, int y) {return xy; }创建test.h 在h中声明定义的函数,不需要任何细节 #ifndef __TEST__ #…...
数据分析-Pandas数据的探查面积图
数据分析-Pandas数据的探查面积图 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&…...
美团分布式 ID 框架 Leaf 介绍和使用
一、Leaf 在当今日益数字化的世界里,软件系统的开发已经成为了几乎所有行业的核心。然而,随着应用程序的规模不断扩大,以及对性能和可扩展性的需求不断增加,传统的软件架构和设计模式也在不断地面临挑战。其中一个主要挑战就是如…...
Ubuntu20.04: UE4.27 中 Source Code 的编辑器下拉框没有 Rider选项
问题描述 最近想用 Rider 作为 UE4 开发的 IDE,但安装好 Rider 后,发现编辑器下拉框中没有 Rider 的选项,我检查了 UE4 的插件,发现 Rider Integration 插件已经安装且启用的。 环境:Ubuntu 20.04 UE4.27 Rider2023…...
【论文阅读-PRIVGUARD】Day4:3节
3 PRIVANALYZER:强制执行隐私政策的静态分析 本节介绍PRIVANALYZER,这是一个用于强制执行由PRIVGUARD追踪的隐私政策的静态分析器**。我们首先回顾LEGALEASE政策语言,我们使用它来正式编码政策,然后描述如何静态地强制执行它们**…...
2026奇点大会AI部署白皮书深度解密(Kubernetes+LLM Runtime双栈融合架构首次公开)
第一章:2026奇点智能技术大会:AI原生容器化部署 2026奇点智能技术大会(https://ml-summit.org) AI原生容器化部署已成为大模型服务落地的核心范式。与传统微服务容器化不同,AI原生部署需同时满足GPU资源弹性调度、模型权重分片加载、推理请求…...
计算机中级-数据库系统工程师-操作系统-设备管理
一、设备管理1. 考点核心考点:设备管理主要包含三个考点:I/O设备管理软件、Spooling技术和磁盘调度算法2. 设备管理的概述自学内容:包括设备的分类、设备管理的目标与任务,建议直接阅读教材相关内容3. I/O设备管理软件1࿰…...
玻璃K值如何测试?
玻璃K值如何测试? 玻璃K值测试方法有测试+计算法、防护热板法/热流计法、标定热箱法、现场测试方法等,标准有JGJ/T 151、GB/T 2680、GB/T 22476、GB/T 10294、GB/T 8484、GB/T 36261等;经常有朋友咨询该用哪种方法、哪个标准?本期做个梳理,不妥之处敬请指正! 1、测试+计…...
测试架构师成长指南:从执行到设计的跃迁
一、角色本质的认知跃迁:从执行者到设计者在软件质量保障领域,测试架构师代表着测试职业发展的战略制高点。与传统测试工程师相比,其核心差异体现在三个维度:1. 思维模式的根本转变执行者思维聚焦用例执行与缺陷记录,依…...
Qwen3-TTS-12Hz-1.7B-CustomVoice部署教程:NVIDIA Triton推理服务器集成方案
Qwen3-TTS-12Hz-1.7B-CustomVoice部署教程:NVIDIA Triton推理服务器集成方案 1. 为什么选择Qwen3-TTS-12Hz-1.7B-CustomVoice 你是否遇到过这样的问题:语音合成服务在多语言场景下表现不稳定,切换语种时音色突变、情感生硬;流式响…...
【限时解密】2026奇点大会闭门报告流出:为什么92%的前端团队将在Q3启动AI-Native重构?3类组织适配模型首次公开
第一章:2026奇点智能技术大会:AI原生前端开发 2026奇点智能技术大会(https://ml-summit.org) 在2026奇点智能技术大会上,“AI原生前端开发”不再是一种概念性演进,而是以编译时语义理解、运行时意图推断与声明式UI合成三位一体的…...
【Unity Shader URP】序列帧动画(Sprite Sheet)实战教程
文章目录0. 效果预览1. 原理简述2. 功能点3. 完整 Shader(可直接用)4. 使用方法5. 参数说明6. 变体与扩展6.1 带 Billboard 的顶点着色器(Shader 内置面向摄像机)6.2 外部控制帧索引(C# 驱动)6.3 Additive …...
PoeCharm实战指南:5步打造你的流放之路完美BD构建
PoeCharm实战指南:5步打造你的流放之路完美BD构建 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 还在为《流放之路》复杂的BD构建而头疼吗?PoeCharm作为一款专为中文玩家打…...
如何快速完整备份QQ空间历史说说?GetQzonehistory终极解决方案
如何快速完整备份QQ空间历史说说?GetQzonehistory终极解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益珍贵的今天,QQ空间作为承载无数人青…...
Lychee Rerank MM免配置教程:绕过HuggingFace下载直启Qwen2.5-VL重排序服务
Lychee Rerank MM免配置教程:绕过HuggingFace下载直启Qwen2.5-VL重排序服务 1. 引言:为什么需要免配置方案 如果你曾经尝试部署多模态AI模型,一定遇到过这样的烦恼:从HuggingFace下载几个GB的模型文件,网络不稳定导致…...
