[英]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.