单击时光标消失,如下所示:
如何重现:
它看起来像这样:https://i.stack.imgur.com/Xq1NR.jpg https://i.stack.imgur.com/Xq1NR.jpg
如果我在 FPS 控制器中勾选鼠标外观 -> 锁定光标,则不会发生这种情况,但我也会在 FPS 游戏中看到光标。
我尝试添加Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false;
暂停和取消暂停时则相反,但没有帮助。可能是因为MouseLook.cs
还在更新它们:
我不想将 FPSController 和暂停菜单结合起来,而且它们也位于不同的场景中。
那么进入暂停菜单时如何解锁光标呢?这里有可以使用的事件模式吗?
它还会使场景变暗,但这是另一个问题了。
它已被修改为MouseLook
脚本中使用的FirstPersonController
脚本。一种解决方案是修改MouseLook
脚本,但简单的资产更新就会终止该修改。
解决此问题的正确方法是禁用FirstPersonController
当您打开任何菜单时编写脚本,然后在关闭该菜单时重新启用它。另外,当您禁用它时,请手动设置Cursor.lockState
to None
并将光标设置为可见。
下面是一个可以处理这个问题的简单函数。你的每一份菜单open and close按钮应链接到下面的功能。当你调用它时,传递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;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)