这是Unity中UI的输入系统
我正在尝试捕捉事件,就像我对另一个InputAction所做的那样:
InputAction
void OnCancel(InputAction.CallbackContext context) { //Do things }
但是我从来没有得到这个回调函数,我该如何使用这个模块呢?
7uzetpgm1#
特定于UI的默认操作随包含以下内容的软件包附带的DefaultInputActions资产一起提供
DefaultInputActions
你可以简单地通过以下方式连接监听器:
new DefaultInputActions().UI.OnCancel.performed += OnCancel;
如果您更愿意使用自己的自定义输入操作资产,则还需要在其中配置这些资产。您可以选择UI动作Map并复制它(CTRL C),然后进入您的自定义Input Actions资源并将其粘贴到动作Map中(CTRL V)。
UI
r3i60tvu2#
输入系统UI输入模块是Inputsystem和UI输入管理之间的桥梁,回调在内部管理。
从文档页面:https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_cancel其中指出:UnityEngine.EventSystems.ICancelHandler将接收由此输入生成的事件。如果在MonoBehaviour上实现接口ICancelHandler以及相应的OnCancel方法,则应看到在选择对象并触发取消操作时调用该方法。
public class MyScript : MonoBehaviour, ICancelHandler { // Your script code. public void OnCancel(EventSystems.BaseEventData eventData) { // This is getting called when a Cancel event occurs. } }
2条答案
按热度按时间7uzetpgm1#
特定于UI的默认操作随包含以下内容的软件包附带的
DefaultInputActions
资产一起提供你可以简单地通过以下方式连接监听器:
如果您更愿意使用自己的自定义输入操作资产,则还需要在其中配置这些资产。
您可以选择
UI
动作Map并复制它(CTRL C),然后进入您的自定义Input Actions资源并将其粘贴到动作Map中(CTRL V)。r3i60tvu2#
输入系统UI输入模块是Inputsystem和UI输入管理之间的桥梁,回调在内部管理。
从文档页面:
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/api/UnityEngine.InputSystem.UI.InputSystemUIInputModule.html#UnityEngine_InputSystem_UI_InputSystemUIInputModule_cancel
其中指出:
UnityEngine.EventSystems.ICancelHandler将接收由此输入生成的事件。
如果在MonoBehaviour上实现接口ICancelHandler以及相应的OnCancel方法,则应看到在选择对象并触发取消操作时调用该方法。