Unity新输入系统返回0或不工作
Unity new input system returning 0 or not working
我正在尝试使用 Unity 的新输入系统来简单地读取鼠标位置。我创建了一个 StandardMap
InputActionMap 资产,其中 CursorPosition
InputAction 配置为读取鼠标位置(“Value & Vector2”操作)。
我应该能够使用类似以下内容读取鼠标的值:
Vector2 pointerPosition =
theInputMapAsset.FindActionMap("StandardMap").FindAction("CursorMovement").ReadValue<Vector2>();
不幸的是,pointerPosition
总是 returns 0,0!我什么都试过了,好像还是不行...
编辑: 事实证明,如果您没有 PlayerInput
定义默认输入处理程序的组件,就会发生这种情况:https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Components.html
下面的答案仍然适用,因为它正确地警告说,如果没有播放器输入组件,则必须显式启用输入映射。
原来你需要 Enable()
InputActionMap
才能使用它!调用以下代码可正确启用输入:
theInputMapAsset.FindActionMap("StandardMap").Enable()
(当然你应该保存对动作的引用map/actions而不是每帧调用FindActionMap
)
我正在尝试使用 Unity 的新输入系统来简单地读取鼠标位置。我创建了一个 StandardMap
InputActionMap 资产,其中 CursorPosition
InputAction 配置为读取鼠标位置(“Value & Vector2”操作)。
我应该能够使用类似以下内容读取鼠标的值:
Vector2 pointerPosition =
theInputMapAsset.FindActionMap("StandardMap").FindAction("CursorMovement").ReadValue<Vector2>();
不幸的是,pointerPosition
总是 returns 0,0!我什么都试过了,好像还是不行...
编辑: 事实证明,如果您没有 PlayerInput
定义默认输入处理程序的组件,就会发生这种情况:https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Components.html
下面的答案仍然适用,因为它正确地警告说,如果没有播放器输入组件,则必须显式启用输入映射。
原来你需要 Enable()
InputActionMap
才能使用它!调用以下代码可正确启用输入:
theInputMapAsset.FindActionMap("StandardMap").Enable()
(当然你应该保存对动作的引用map/actions而不是每帧调用FindActionMap
)