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

本文关键字:屏幕 光标 一直 Unity3D | 更新日期: 2023-09-27 18:11:47

我已经试图解决这个问题3天了,我一直无法解决它自己。实际情况是,当我打开库存时,我的鼠标理论上应该显示并解锁。现在这几乎是可行的,除了当我试着移动我的鼠标时,它几乎立即被拉(就像它有很大的重力一样)直接拉到中心。我使用Unity版本5.4.0f3,我在Windows 10上。此外,我使用的是Unity标准资产fps控制器(但我不这么认为,因为锁定和解锁光标的效果很好,除了使用库存的情况),这一切都发生在编辑器中。

我的代码(在库存脚本中)是:

 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;
     }

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

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