Unity3D C#:光标一直被拉回屏幕中央?

Unity3D C# : Cursor keeps being pulled back to the center of the screen?

我已经尝试解决这个问题 3 天了,但我自己一直无法解决。发生的事情是当我打开我的库存时,我的鼠标在理论上应该被显示和解锁。现在这几乎可以工作了,除了当我尝试实际移动我的鼠标时,它几乎立即被拉到中心(就像它有很大的重力一样)。我正在使用 Unity 版本 5.4.0f3 并且我在 Windows 10.Also 如果它有任何不同,我正在使用 Unity Standard Assets FPSController(但我不认为自从锁定和解锁我的cursor 工作得很好,除了在使用我的库存的情况下),这一切都发生在编辑器中。

我执行此操作的代码(在清单脚本中)是:

 if (isShown) { // If the inventory is opened

             Cursor.visible = true;
             Cursor.lockState = CursorLockMode.None;
 }

除了在单独的脚本中,我没有其他影响光标的代码:

 if (inventory.isShown || pauseManager.isPaused) { // If inventory is opened or game is paused
     Cursor.visible = true;
     Cursor.lockState = CursorLockMode.None;
     } else {
         Cursor.lockState = CursorLockMode.None;
     }

任何帮助将不胜感激~

我唯一能想到的是你的 Update() 正在调用你的 FPS 控制器的一部分(它将光标重新锁定到屏幕中间)即使你在库存或暂停菜单。你说你的鼠标就像它有很大的重力或其他东西一样,这可能是因为你的鼠标没有瞬间锁定,直到它到达将它重新锁定到屏幕中心的代码的任何部分再次。检查脚本中的 Update() 函数,看看您是否在列出的 if 语句之前调用任何可能导致该行为的内容。希望这对您有所帮助!