[英]Showing menu make the cursor disappear
单击时光标消失,如下所示:
繁殖方法:
在用户界面->开始选项组件中,勾选“更改场景”。
按Escape键并触摸滑块,任何单击都会使光标消失。
看起来像这样: https : //imgur.com/a/hefmP
如果我勾选FPS控制器中的鼠标外观->锁定光标,则不会发生这种情况,但是我也可以在FPS游戏中看到光标。
我试图添加Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false;
暂停和取消暂停时相反,但这无济于事。 可能是因为MouseLook.cs
也正在更新它们:
我宁可不要将FPSController和暂停菜单耦合在一起,它们也处于不同的场景中。
那么进入暂停菜单后还能如何解锁光标? 这里有可以使用的事件模式吗?
它也使场景变暗,但这是另一个问题。
它已由FirstPersonController
脚本中使用的MouseLook
脚本修改。 一种解决方案是修改MouseLook
脚本,但是简单的Asset更新将MouseLook
该修改。
解决此问题的适当方法是,在打开任何菜单时禁用FirstPersonController
脚本,然后在关闭该菜单时将其重新启用。 另外,禁用它时,请将Cursor.lockState
手动设置为None
,并将光标设置为visible。
下面是一个简单的函数来处理。 菜单的每个打开和关闭按钮都应链接到下面的功能。 调用它时,请使用打开按钮将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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.