单击一下,光标就会消失,如下所示:
如何重现:
勾选用户界面中的“更改场景” - >启动选项组件。
按下转义并触摸滑块,任何单击都会生成 光标消失。
看起来像这样:https://imgur.com/a/hefmP
如果我勾掉鼠标外观 - >将光标锁定在FPS控制器中然后这不会发生,但我也在我的FPS游戏中看到光标。
我尝试添加Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false;
,但在暂停和取消暂停时却相反,但它没有帮助。可能是因为MouseLook.cs
也在更新它们:
我不想把FPSController和暂停菜单联系在一起,它们也在不同的场景中。
那么在进入暂停菜单时我怎么能解锁光标呢?是否有可以在这里使用的事件模式?
它也使场景变暗,但这是另一个问题。
答案 0 :(得分:1)
它已被MouseLook
脚本中使用的FirstPersonController
脚本修改过。一种解决方案是修改MouseLook
脚本,但简单的资产更新会终止该修改。
此问题的正确解决方法是在打开任何菜单时禁用FirstPersonController
脚本,然后在关闭该菜单时将其启用。此外,当您将其禁用时,请手动将Cursor.lockState
设置为None
并将光标设置为可见。
下面是一个简单的函数来处理它。您的每个菜单打开和关闭按钮都应链接到以下功能。 当您拨打电话时,请使用打开的按钮将false
传递给它,然后使用关闭按钮将true
传递给它:
void enableFPS(bool enable)
{
GameObject fpsObj = GameObject.Find("FPSController");
FirstPersonController fpsScript = fpsObj.GetComponent<FirstPersonController>();
if (enable)
{
//Enable FPS script
fpsScript.enabled = true;
}
else
{
//Disable FPS script
fpsScript.enabled = false;
//Unlock Mouse and make it visible
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
}