You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity新输入系统读取鼠标位置返回0或无法正常工作如何解决

Unity新输入系统读取鼠标位置返回(0,0)问题排查

问题复现前提

  • 已创建名为StandardMap的InputActionMap资源
  • 资源内配置了CursorPosition类型的InputAction,动作属性设置为Value & Vector2用于读取鼠标位置
  • 尝试用如下代码读取坐标:
Vector2 pointerPosition = 
 theInputMapAsset.FindActionMap("StandardMap").FindAction("CursorMovement").ReadValue<Vector2>();
  • 运行后pointerPosition始终返回(0,0),无法拿到正确鼠标坐标

根因说明

当项目中没有挂载包含默认输入处理器的PlayerInput组件时,自定义的InputActionMap不会被自动启用,输入系统不会主动采集对应动作的数值,因此读取结果始终为默认值。

修复方案

没有使用PlayerInput组件的场景下,必须显式启用对应的输入映射后再读取数值,调整后的代码示例:

// 获取目标输入映射
var standardActionMap = theInputMapAsset.FindActionMap("StandardMap");
// 手动启用映射,触发输入系统开始采集对应动作数据
standardActionMap.Enable();
// 读取鼠标位置
Vector2 pointerPosition = standardActionMap.FindAction("CursorMovement").ReadValue<Vector2>();

提示:如果后续不需要持续监听该映射的输入,可调用standardActionMap.Disable()关闭映射,降低不必要的性能消耗。


内容的提问来源于stack exchange,提问作者Francois Bertrand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:36:03