微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity“InvalidOperationException:无法从控件读取'float'类型的值”但我的值为Vector2

如何解决Unity“InvalidOperationException:无法从控件读取'float'类型的值”但我的值为Vector2

所以最近我一直在学习统一运动的教程,最近遇到了一些麻烦,新的输入系统统一读取动作的值,以便用我的 xBox 控制器上的左摇杆移动我的角色。错误说:

null

我的操作类型是值,我的控制类型是矢量 2,我的绑定是我的左控制杆。 这是我的行动地图:

enter image description here

注意:我已经尝试将值更改为 passthrough,就像这里的其他一些关于粘性溢出的答案一样,但仍然没有用。

这是我访问回调函数代码

InvalidOperationException: Cannot read value of type 'float' from control '/XInputControllerWindows/leftStick' bound to action'Character_Controls/Movement[/XInputControllerWindows/leftStick]' (control is a 'StickControl' with value type 'Vector2')

如您所见,currentmovement 我的 vector2 变量应该分配给从当前上下文读取的 vector2。但是即使 currentmovement 是一个 vector2 并且正在获取一个 vector 2 值,它仍然说它无法读取 float 类型的值,即使没有提到 float 。有什么帮助吗? 如果有帮助,这是我的其余代码

input.Character_Controls.Movement.performed += ctx =>
        {
            currentmovement = ctx.ReadValue<Vector2>();
            movementpressed = currentmovement.x != 0 || currentmovement.y != 0;
        };

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。