Unity新输入系统返回0或不工作



我正在尝试使用Unity的新输入系统来简单地读取鼠标位置。我创建了一个StandardMapInputActionMap资产,其中CursorPositionInputAction配置为读取鼠标位置("Value "Vector2"行动)。

我应该能够读取鼠标的值,使用如下代码:

Vector2 pointerPosition = 
theInputMapAsset.FindActionMap("StandardMap").FindAction("CursorMovement").ReadValue<Vector2>();

不幸的是,pointerPosition总是返回0,0!我什么都试过了,但似乎都不管用。

编辑:如果没有定义默认输入处理程序的PlayerInput组件(如https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Components.html所示),就会发生这种情况下面的答案仍然适用,因为它正确地警告说,如果没有玩家输入组件,输入地图必须显式启用。

原来你需要Enable()InputActionMap之前使用它!调用以下代码使输入正确:

theInputMapAsset.FindActionMap("StandardMap").Enable()

(当然你应该保存对action map/actions的引用,而不是每帧调用FindActionMap)

相关内容

  • 没有找到相关文章

最新更新