我正在尝试在编辑器中获取触摸事件。但是我没有从输入操作中得到任何事件。
我有一个非常简单的脚本:
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.EnhancedTouch;
public class GameManager : MonoBehaviour
{
public InputAction _touch;
void Awake()
{
TouchSimulation.Enable();
_touch.started += OnTouch;
_touch.performed += OnTouch;
_touch.canceled += OnTouch;
}
void OnTouch(InputAction.CallbackContext context)
{
Debug.Log(context.ReadValueAsObject());
}
}
如此简单的InputAction _touch
我订阅了它的所有事件。
我还使用TouchSimulation.Enable()
在“唤醒”功能中启用了触摸模拟。
然后在检查器中按如下所示进行设置:
“输入操作”的设置为:
主要接触对象是:
当我在游戏视图中单击并拖动鼠标时,什么也没有发生,也没有触发任何事件。
我在做什么错?我还需要什么来获取触摸事件并在编辑器中对其进行仿真?
我正在运行Unity 2019.4。
谢谢!
答案 0 :(得分:1)
我发现了问题,显然您需要先启用输入操作:
void Awake()
{
_touch.started += OnTouch;
_touch.performed += OnTouch;
_touch.canceled += OnTouch;
_touch.Enable();
}
在OnEnable
和OnDisable
回调中启用/禁用单一行为也是一个好主意。
答案 1 :(得分:0)
文档引用:https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Touch.html
触摸模拟可以从其他输入上模拟触摸输入 各种指针设备,例如鼠标和笔设备。启用 您可以将TouchSimulation MonoBehaviour添加到 您场景中的GameObject或直接调用TouchSimulation.Enable 启动代码中的某个位置。
void OnEnable() { TouchSimulation.Enable(); }
在编辑器中,您还可以通过切换“模拟触摸输入”来启用触摸模拟。 通过鼠标或笔在“选项”下拉菜单中 Input Debugger中的。
TouchSimulation将添加一个触摸屏设备并自动镜像 在任何Pointer设备上输入虚拟触摸屏设备。