InputSystem的Interactions作用及具体使用方法
Interaction(交互)主要用于一些常用的输入模式,例如双击、长按。
Unity自带一个基本交互,如果用户在Interactions中指定交互模式,系统默认会使用default Interaction。
介绍一下几种交互模式
HoldInteraction-如果控件至少按住设置的持续时间(默认为 defaultHoldTime),则Perform(执行)状态为True。
测试代码:
public void OnAttack(InputAction.CallbackContext context)
{
Debug.Log("---事件回调---");
Hold(context);
}
public void onMove(InputAction.CallbackContext context)
{
Debug.Log("执行移动操作");
}
public void Hold(InputAction.CallbackContext context)
{
Debug.Log("Hold-Start:"+context.started);
Debug.Log("Hold-performed:"+context.performed);
Debug.Log("Hold-Canel:"+context.canceled);
}
测试结果:
按键按下执行一次事件回调,执行Started。当按住市场达到设置的持续时间进行事件回调,执行Performed。松开按键执行一次事件回调,执行Caneled。
MultTapInteraction-需要多次点击(在 maxTapDuration 内按下和释放)的交互间隔不超过 maxTapSpacing 秒。(maxTapSpacing为每次点击之间的事件间隔,MaxTapDuration为每次有效点击的最大时间)
PressInteraction-在按钮按下这个过程执行
PressInteraction分为了三种触发Perform行为分别是PressOnly、ReleaseOnly、PressAndRelease
PressOnly:当按下时执行Performed
ReleaseOnly:当释放时执行Performed
PressAndRelease:按下于释放时都执行Performed,整个过程共四次回调
SlowTapInteraction-与hold类似,按住时长大于Min Tap Duration执行Performed.
上图中在Min Tap Duration内立刻松开按键,没有执行Performed。
TapInteraction-与hold、SlowTap效果相反,按住时长要在Max Tap Duration之内才执行Performed.
添加Interactions模式
映射Action(见文章)-配置Action属性
展开Action属性中的Interactions栏,点击右侧加号选中需要的Interaction即可
来源:麦瑞克博客
链接:https://www.playcreator.cn/archives/unity/476/
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
[…] Interactions:见文章InputSystem的Interactions作用及具体使用方法 […]