找回密码
 立即注册
查看: 292|回复: 0

[笔记] InputSystem 新版Unity输入系统学习(2)

[复制链接]
发表于 2024-7-15 18:40 | 显示全部楼层 |阅读模式
1,InputAction

inputAction 是inputSystem辅佐我们封装的输入动作类,
它的主要感化,是不需要我们通过书写代码的形式来措置输入,
而是直接再inspector窗口编纂想要措置的输入类型。
当输入触发时,我们只需要将精力花在输入触发后的逻辑措置上。
在使用InputAction前,需要导入定名空间using UnityEngine.InputSystem;



书写



脚本挂载样子

inputAction编纂相关




面板一

Actions
输入动作相关 Action Type 动作类型



1,Value :值类型,主要用于状态持续更改的输入,例如鼠标的移动,手柄的摇杆,如果有多个设备绑定这个Action,只会发送此中一个设备的输入。
2,Button:按钮类型,用于每次按下时触发的Action
3,Pass Through:直通类型,和Value一样,区别在于,如果有多个设备绑定这个Action会发送所有设备的输入

Control Type


在Actions这里选择对应的类型,之后再通过这个选择可以筛选对应相关的返回值类型。



是与+号这里返回设备相关的。建议本身试一下,因为这里我不太清楚如何表达才准确了。

选择类型:
Any:任何值
Analog:模拟值,浮点数
Axis:一维轴浮点数值,例如UNity老版的getAxis,
Bone:骨骼
Digital:数字
Double :浮点
Dpad:四向按钮 ,
Eyes:VR上相关数值
Integer:整数
Quaternion:四元数
Stick :摇杆相关
Touch:触屏相关
Vector2:  二维向量 例如鼠标移动向量
Vector3:三维向量
Interactions




彼此感化设置

用于特殊输入,比如长按,多次点击等,
当满足条件时才会触发这个行为(设置长按时间,点击次数等)


Interactions 中拥有三个事件 ,可以通过代码来添加对应的监听。
Started 开始
Performed 长按
Canceled 结束



选项感化

Hold:适用于需要设备保持一段时间的操作,也就是长按,old
Tap:需要在一小段时间内松开来触发,也就是点击 Click
SlowTap:迟缓点击,和Hold很像,但是它并不是抵达等待时间时触发,而是等待抬起时触发。
MultiTap:这个用作与多次点击,例如双击or更多。
Press 可以实现类似于按钮的操作。
PressOnly 按下时触发 Started和preformed 不惩罚canceled
ReleaseONly 按下时触发Started,松开时触发preformed
Press And Release 按下时会触发Started 和 preformed 松开时会再次触发started 和 preformed
Press Point :在inputSystem 中每个按钮都有对应的浮点值,例如普通的按钮会在0(未按下)和1(按下)之间
,因此,我们可以操作这个值,来进行区分,当大于这个值,则认为按钮按下了。
Processors 对得到的值进行操作。





Clamp 经典的钳制函数, 用来将输入值限定在必然范围内
invert :反转控件中的值,
Invert Vector2 反转控件中的值,即,将值*-1,


如果轴向暗示为true 则反转,
Invert Vector3 反转控件中的值,同上。
Normalize 如果最小值>=0,则将指定范围内的输入值规格化为无符号规格化形式【0..1】,如果最小值<0,则将输入值规格化为有符号规格化形式[-1..1]
Normalize Vector2 将输入向量归一化
Normalize Vector3 将输入向量归一化
Scale 将所有输入值乘以一个系数
Scale Vector2 将所有输入值X一个系数 但是是Vector2版本
Scale Vector2 将所有输入值X一个系数 但是是Vector3版本
Axis Deadzone //死区设置 添加一个误触区域,也就是将一个较小范围的值设定为0,且将接近最大值的范围值都设定为最大。
Stick Deadzone //摇杆死区设置
+号点击



AddBinding :添加新的输入绑定(单按键输入)
AddPositive\NegativeBinding or Add1D Axis Composite
添加1D轴组合,类似于原版input常用的Axis的横轴和竖轴
Add Up\Down\Left\Right Composite
or
Add 2D Vector Composite
添加2D向量组合,类似于原版横轴和竖轴组合在一起。
Add Up\Down\Left\Right\Forward\Backward Composite
添加3D向量组合
Add Button With One Modifier Composite
添加带有一个复合改削器的按钮(可以理解为双组合键, 比如Ctrl+C、Ctrl+V)
Add Button With Two Modifier Composite
添加带有两个复合改削器的按钮(可以理解为三组合键,比如Ctrl + Alt + z)
Path



Path:从哪个控件接受输入
Usages:常用用法
GamePad:游戏手柄
Joystick:独霸杆
Keyboard:键盘
Mouse:鼠标
Pen:笔
Pointer:指针
Sensor:传感器
TouchScreen:触屏
Tracked Device:履带装置
XR Controller:XR 控制器
XR HMD:XR 头戴显示器
Other:其它
InputAction使用






对应了内部的数种状态,可以直接点开看,是个枚举类。

        Disabled,没有启用
        Waiting,等待
        Started,开始
        Performed,触发
        Canceled结束


这个参数内部还有很多值可供获取。

<hr/>实际使用---点击Button




面板



代码



输出

实际使用--1D轴向




面板



代码



打印成果

实际使用--2D轴向




面板



代码



打印

实际使用--3D轴向




面板



代碼



打印

实际使用--组合按键——这个2组合键和三组合是一样的。




面板



代码



打印

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-22 00:07 , Processed in 0.107641 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表