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

Unity新输入系统 之 InputAction(输入配置文件最基本的单位)

本文仅作笔记学习和分享,不用做任何商业用途

本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​

首先你应该了解新输入系统的构成结构:Unity新输入系统结构概览-CSDN博客

Input System - Unity 手册

1.InputAction概览

还是需要强调,InputAction中定义了所有的输入手势,是用来配置输入的基本单位

声明一个变量

 public InputAction inputaction;

 

2.预配置选项(齿轮)

Unity's new Input system Beginners Guide - VionixStudio

2.1 Action Type

动作类型可以自己选择响应方式,我也理解为模拟量化方式

比如键盘上的案件你总不可能用value来处理,显然是buttron表示一次的按键事件,而鼠标的点击肯定是用value来模拟,不然怎么处理连续的拖动呢?

2.2 Control Type

2.3 Interactirons

交互方式,非常简单就是长按,多按,压按,慢按,点按触发

如果想要设置详细信息或者配置更多的内容,可以open input settings里有一大堆可以设置的参数

2.4 Processors

后处理,该处就是将动作类型设置的返回值通过一定方式处理并再次返回出去

3.Binding(绑定按键)

当然添加绑定方式也受到Acrtion Type和Control Type影响

当我如下设置时,会出现上下左右键的组合绑定

如下设置时,则会前后左右键的组合绑定

双击空的绑定事件,可以自己选择输入方式的具体内容,比如我就拿键盘的wasd举例

双击2D vector可以看到其部分参数

4.代码与事件

Class InputAction | Input System | 1.6.1 (unity.cn)

为了举例我绑定了一个button的鼠标左键事件

最最开始,可以使用Enable方法启用输入检测

开始,触发与结束事件

查看源码可以看到started事件类型是一个泛型的有参无返回值的Action

(C# 事件-CSDN博客)

so,我们可以创建一个CallbackContext参数的函数,或者直接lambda表达式

public class inputContral : MonoBehaviour
{public InputAction mouseClick;public InputAction inputaction;void Start() {mouseClick.Enable();mouseClick.started+=(cacllbake)=>{print("进入事件,鼠标点下去了");};mouseClick.performed += func;mouseClick.canceled += (cacllbake) => {print("结束事件,鼠标抬起来了");};}private void func(CallbackContext callbackContext) {print("触发了事件,鼠标按下途中");     }

下面则是之前的wasd的vector2的栗子

移动控制ReadValue<>();

public class InputControl : MonoBehaviour {public InputAction inputaction;private void Start() {inputaction.Enable();inputaction.performed += OnInputPerformed;}private void OnInputPerformed(InputAction.CallbackContext context) {Vector2 inputVector = context.ReadValue<Vector2>();float ws = inputVector.y;if (ws > 0) {Debug.Log("W key pressed");}else if (ws < 0) {Debug.Log("S key pressed");}}
}

http://www.lryc.cn/news/423658.html

相关文章:

  • 【3】MySQL的安装即启动
  • 变“金点子”为“好应用”,合合信息智能文档处理技术助力大学生探索AI创新边界
  • 央行重提P2P存量业务化解,非吸案开始翻旧账?
  • 8B 端侧小模型 | 能力全面对标GPT-4V!单图、多图、视频理解端侧三冠王,这个国产AI开源项目火爆全网
  • 汽车免拆诊断案例 | DAF(达富)汽油尾气处理液故障警示
  • 图论算法
  • 手抖跟饮食有关系吗?
  • 59. 螺旋矩阵 II
  • shiro注解不起作用:shiro进行权限校验时,@RequireRoles(“admin“)注解不起作用的解决方法
  • ZABBIX邮件监控发送信息
  • Java核心 - 减少循环次数的必要性及其实现方法
  • 国产麒麟系统下U盘只读文件系统问题
  • STM32-定时器-定时器中断-PWM调光
  • 【学习笔记】用线段树维护区间计数问题
  • 4章11节:用R做数据重塑,数据的特征缩放和特征可视化
  • LVS-NAT + LVS-DR
  • 排序算法——插入排序
  • 重修设计模式-行为型-状态模式
  • 网络安全知识渗透测试
  • 我国卫星互联网产业集群崛起;1000万资金扶持 上海助推产业互联网平台跨越式发展;河南“数据要素×”行动实施方案发布 | 产业互联网观察第179期
  • 《RT-DETR》论文笔记
  • 输出Docker容器的启动命令行脚本
  • Dubbo 快速掌握 这篇就够了
  • 【每日刷题】Day100
  • 网络协议九 应用层 HTTPS
  • 【ArrayList】JDK1.8源码详细注释 以及如何实现线程安全的链表
  • [python]rasterio运行代码警告proj_create_from_database: Cannot find proj.db
  • ThinkPHP5.1.C+CmsEasy-SQL注入
  • Python 绘图进阶之词云图:文本数据的可视化艺术
  • 【Windows】Q-Dir(资源管理器)软件介绍