【Unity】新InputSystem中点按UI组件模拟键盘输入

2023-11-14

项目中用空格作为对话的交互键,想要实现对话时点按UI中的panel和空格有一样的效果。

文档中创建event并传入的方法:

原文地址:Input events | Input System | 1.3.0 

第二个方法第二个参数搞不懂应该传入什么,第一个成功。

using (StateEvent.From(Keyboard.current, out var eventPtr))
            {
                (Keyboard.current.spaceKey).WriteValueIntoEvent(1f, eventPtr);
                InputSystem.QueueEvent(eventPtr);
            }

 上段实现了按下,实测后发现会一直保持值不变,所以需要再恢复,这里其实我没找到value的范围和实际的含义,我自己的理解是1按下0抬起。结合IPointerDownHandler和 IPointerUpHandler两个接口,在按下和抬起时传入相应的事件;

public void OnPointerDown(PointerEventData eventData)
        {
            using (StateEvent.From(Keyboard.current, out var eventPtr))
            {
                (Keyboard.current.spaceKey).WriteValueIntoEvent(1f, eventPtr);
                InputSystem.QueueEvent(eventPtr);
            }
        }

        public void OnPointerUp(PointerEventData eventData)
        {
            using (StateEvent.From(Keyboard.current, out var eventPtr))
            {
                (Keyboard.current.spaceKey).WriteValueIntoEvent(0f, eventPtr);
                InputSystem.QueueEvent(eventPtr);
            }
        }

 可以完美模拟按下空格的效果,按住不放可以保持按下状态。

关于value的实际定义和第二个方法的实现,希望有大佬能教教ヾ(✿゚▽゚)ノ。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Unity】新InputSystem中点按UI组件模拟键盘输入 的相关文章

  • Qt 和 Sqlite 示例

    我正在寻找一些使用 Qt 的示例代码 它是带有 Sqlite 驱动程序的 SQL 模块 我需要示例的主要原因是我之前有 Qt 数据库接口的经验 并且 Sqlite 在字段类型方面有一些奇怪的行为 类型是按字段存储的 而不是按列存储的 The
  • 使用遗留代码(使用reinterpret_cast)真的是一种很好的技术吗?

    下面的代码来自一篇关于C 面试问题的帖子here https www toptal com c plus plus interview questions 我从来不知道这种技术 尽管它声称是一种很好的技术 我的问题是 什么情况下需要使用它
  • StackExchange Redis 删除所有以以下开头的键

    我有一个格式的密钥 Error 1 Error 24 Error 32 Using StackExchange Redis 我该怎么办KeyDelete在与格式匹配的所有键上Error 在另一个答案中我看到了 LUA 脚本 EVAL ret
  • 地图类容器的专用功能

    我想要专门为矢量和地图之类的容器设计一个函数模板 对于向量 我可以像下面那样做 但我不知道如何才能有一个专门版本的函数 该函数仅用于像地图这样的容器 include
  • 处理器关联组 C#

    我使用的是 72 核的 Windows Server 2016 我看到有两组处理器 我的 net 应用程序将使用一个或其他组 我需要能够强制我的应用程序使用我选择的组 我看到下面的代码示例 但我无法使其工作 我可能传递了错误的变量 我希望应
  • 如何配置 Ninject 来注入 NodaTime IClock

    在我的 NinjectConfigurator 中我有 container Bind
  • 二叉树和快速排序?

    我有一个家庭作业 内容如下 别生气 担心 我是not请你帮我做作业 编写一个程序 通过使用二分查找的快速排序方法对一组数字进行排序 树 推荐的实现是使用递归算法 这是什么意思 到目前为止 这是我的解释 正如我在下面解释的那样 我认为两者都有
  • 以编程方式更新 Wifi 网络

    我正在尝试创建一个程序 当某个 wifi 网络在范围内时 该程序会连接到该网络 即使已经连接到另一个 wifi 也是如此 我在用着简单Wifi https github com DigiExam simplewifi 基本上效果很好 除了在
  • 仅使用一个 #include 表达式一次包含多个头文件?

    是否有任何表达式可以使语法一次包含多个标头 而无需为每个新文件编写 include 表达式 例如 include
  • .Net 支持柯里化泛型吗?

    假设我们有一个嵌套的泛型类 public class A
  • 将 JavaScript 引擎嵌入到 .NET 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 只是想知道是否有人尝试过将任何 js 引擎嵌入并实际集成到 net 环境中 我可以找到并实际使用 经过L
  • 批量插入,asp.net

    我需要获取与会员相对应的 ID 号列表 在任何给定时间处理的数量可能在 10 到 10 000 之间 我可以毫无问题地收集数据 解析数据并将其加载到 DataTable 或任何内容 C 中 但我想在数据库中执行一些操作 将所有这些数据插入表
  • 模板类中模板方法专门化的 clang 自动返回类型错误?

    试图理解另一个问题 https stackoverflow com questions 38054055 clang fails to compile template function with auto return type insi
  • 为什么使用 .AsEnumerable() 而不是转换为 IEnumerable

    扩展方法之一IEnumerable
  • 如何检查日期时间是否发生在今天?

    有没有比下面的代码更好的 net 方法来检查 今天 是否发生了 DateTime if newsStory WhenAdded Day DateTime Now Day newsStory WhenAdded Month DateTime
  • C 中的 2 个字符要短

    我有2个字符 Char 128和查尔2 如何将这些字符转为 Short640 in C 我试过了 unsigned short getShort unsigned char array int offset short returnVal
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest
  • C 中的等效 plpgsql 触发器

    我有一个 PostgreSQL 9 0 服务器 并且在某些表上使用继承 因此我必须通过如下触发器模拟外键 CREATE OR REPLACE FUNCTION othertable before update trigger RETURNS
  • 在for循环中声明和初始化变量

    可以简单写一下吗 for int i 0 代替 int i for i 0 在 C 或 C 中 并且会变量i只能在循环内部访问 它在 C 中有效 它在 C 的原始版本中是不合法的 但在 C99 中被采用为 C 的一部分 当时一些 C 功能被
  • C# 使用 .Equals() 比较两个 double

    我使用 ReShaper 当我用 比较两个双精度值时 它建议我应该使用 Math 具有公差的 ABS 方法 看 https www jetbrains com help resharper 2016 2 CompareOfFloatsByE

随机推荐

  • js截取字符串前几位或者截取字符串后几位

    经常会遇到后台反的时间是 2020 02 02 10 00 00 页面上需要只展示年月日或者只展示时分秒 那么最简单的方法就是返回过来的值直接截取一下即可 如何截取前几位 案例如下 var date 1996 10 22 22 55 33
  • TorchServe 详解:5 步将模型部署到生产环境

    内容导读 TorchServe 自 2020 年 4 月推出至今 经历了 2 年多的发展 变得愈发成熟和稳定 本文将对 TorchServe 进行全面介绍 本文首发自微信公众号 PyTorch开发者社区 更多应用 PyTorch 进行实际模
  • 深度学习------神经网络迁移学习

    迁移学习 import tensorflow as tf import IPython display as display import numpy as np import matplotlib pyplot as plt import
  • factoryBean.setTypeAliasesPackage()详解

    示例代码 Bean public SqlSessionFactoryBean sqlSessionFactory DataSource dataSource SqlSessionFactoryBean factoryBean new Sql
  • 阿里云短信发送接口实现

    使用阿里云短信接口发送验证码 1 引入依赖 springboot 工程引入web 引入 lombok 关键代码引入
  • 如何在iterm2中设置自动远程登录(附跳板机攻略)

    最近在mac中折腾ssh自动登录的问题 不自动登录每次输入命令太痛苦了 采取的方案是expect脚本的方式 其实选择这种方案而不是在远程服务器上保存key的方式主要是因为公司限制了在跳板机上保存私有数据的权限 如果想了解如何不输入密码登录远
  • 翁凯C语言作业7-1

    include
  • Linux常用命令_文件搜索命令

    文章目录 1 文件搜索命令find 2 其他搜索命令 2 1 文件搜索命令 locate 2 2 文件搜索命令 which 2 3 文件搜索命令 whereis 2 4 文件搜索命令 grep 1 文件搜索命令find 2 其他搜索命令 2
  • 数据集【NO.13】复杂场景下的鸟类检测数据集

    写在前面 数据集对应应用场景 不同的应用场景有不同的检测难点以及对应改进方法 本系列整理汇总领域内的数据集 方便大家下载数据集 若无法下载可关注后私信领取 关注免费领取整理好的数据集资料 今天分享一个非常好的非常小众的研究方向 有应用创新
  • 获取文件夹下所有的文件数量

    文件夹下所有的文件数量 param type url 文件链接 function shuLiang url 造一个方法 给一个参数 sl 0 造一个变量 让他默认值为0 arr glob url 把该路径下所有的文件存到一个数组里面 for
  • IDEA 中 MyBatis还可以这么玩!!!

    前言 1 搭建 MyBatis Generator 插件环境 a 添加插件依赖 pom xml b 配置文件 generatorConfig xml c 数据库配置文件 jdbc properties d 配置插件启动项 2 项目实战 a
  • C++网络编程Reactor模式介绍

    Reactor模式是一种事件驱动的设计模式 主要用于处理服务请求 这些请求在一开始并不知道何时会到达 它是一种非阻塞I O模式 可以处理大量并发连接 因此在网络编程中被广泛使用 Reactor模式的主要组件包括 Reactor 这是事件循环
  • 【TS第三讲】完善TS开发环境

    文章目录 写在前面 ts node nodemon nodemon文件类型 nodemon文件范围 写在最后 写在前面 探索TypeScript世界 驭Vue3 Ts潮流 开启前端之旅 欢迎来到前端技术的精彩世界 无论你是刚刚踏入编程大门的
  • JS加密方式

    常见加密方式 加密 前端 1 把加密的数据给后端 2 JS加密 3 携带正确的参数 进行加密 后端 存入数据库或者校验 为了反爬 前端请求就会进行携带指定的参数 参数的值会进行加密 后端再进行校验 1 MD5加密 概念 线型散列算法 签名算
  • ffmpeg结构体一览表

    AVFormatContext typedef struct AVFormatContext A class for logging and ref avoptions Set by avformat alloc context Expor
  • ESP32CAM基于Python环境开发实时摄影

    开发环境搭建 安装Thonny代码编辑器和ESP32带有CAM的固件 链接 https pan baidu com s 1NBTMvZzzF6eJse2Wsr2ykQ pwd 1o6y 提取码 1o6y 安装Thonny 教程网上一大把 基
  • 对称加密+非对称加密,实现数据安全传输

    一般金融类的产品 涉及前端和后端交互的时候 都会都严格的数据安全保证 防止黑客攻击 信息篡改 加密方式有很多 总的来说 分为2种 对称和非对称 我们先来看一下 这两种加密方式分别是什么 他们有什么区别 对称加密 对称加密 即采用对称的密码编
  • http和https协议

    HTTP协议 简介 HTTP是Hyper Text Transfer Protocol 超文本传输协议 的缩写 HTTP是一个属于应用层的面向对象的协议 由于其简捷 快速的方式 适用于分布式超媒体信息系统 HTTP协议以明文方式发送内容 不
  • 浮动元素无法撑开父元素问题

    如何解决浮动元素无法撑开父元素问题 首先我们看一下问题 div class wrapper div class content div div class content div div class content div div clas
  • 【Unity】新InputSystem中点按UI组件模拟键盘输入

    项目中用空格作为对话的交互键 想要实现对话时点按UI中的panel和空格有一样的效果 文档中创建event并传入的方法 原文地址 Input events Input System 1 3 0 第二个方法第二个参数搞不懂应该传入什么 第一个