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);
    }

测试结果:

HoldInteraction的测试结果

按键按下执行一次事件回调,执行Started。当按住市场达到设置的持续时间进行事件回调,执行Performed。松开按键执行一次事件回调,执行Caneled。

MultTapInteraction-需要多次点击(在 maxTapDuration 内按下和释放)的交互间隔不超过 maxTapSpacing 秒。(maxTapSpacing为每次点击之间的事件间隔,MaxTapDuration为每次有效点击的最大时间)

MultiTap配置

PressInteraction-在按钮按下这个过程执行

点击查看详细内容

PressInteraction分为了三种触发Perform行为分别是PressOnly、ReleaseOnly、PressAndRelease

PressOnly:当按下时执行Performed

点击查看详细内容

TriggerBehaviour设置为PressOnly的测试结果

ReleaseOnly:当释放时执行Performed

点击查看详细内容

TriggerBehaviour设置为ReleaseOnly的测试结果

PressAndRelease:按下于释放时都执行Performed,整个过程共四次回调

点击查看详细内容

TriggerBehaviour设置为PressAndRelease的测试结果

SlowTapInteraction-与hold类似,按住时长大于Min Tap Duration执行Performed.

点击查看详细内容

测试:按下后立刻松开

上图中在Min Tap Duration内立刻松开按键,没有执行Performed。

TapInteraction-与hold、SlowTap效果相反,按住时长要在Max Tap Duration之内才执行Performed.

 

添加Interactions模式

映射Action(见文章)-配置Action属性

展开Action属性中的Interactions栏,点击右侧加号选中需要的Interaction即可

添加Interaction步骤图

 

作者:Miracle
来源:麦瑞克博客
链接:https://www.unitymake.com/archives/unity/476
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议,转载请注明!
THE END
分享
打赏
海报
InputSystem的Interactions作用及具体使用方法
Interaction(交互)主要用于一些常用的输入模式,例如双击、长按。 Unity自带一个基本交互,如果用户在Interactions中指定交互模式,系统默认会使用……
<<上一篇
下一篇>>
文章目录
关闭
目 录