[英]Unable to resume unity3D after pause
我對 c# 比較陌生。 我目前正在暫停和恢復屏幕。 暫停似乎工作得很好,但恢復功能不是。
我使用Debug.Log
將問題縮小到下面的代碼塊。 當我在暫停后點擊恢復按鈕時, Paused
被設置為false
,但沒有更多的事情發生,就像代碼從未到達else
子句一樣。
但是,它確實有效,就像在我點擊暫停之前一樣,我從Debug.Log
獲得“恢復”,但是每當我點擊暫停時,我都不會得到那個。
public static bool Paused;
public void ClickPauseButton()
{
Paused = true;
Time.timeScale = 0;
}
public void ClickResumeButton()//works
{
Paused = false;
Time.timeScale = 1;
}
void Update()
{
if(Paused == true)
{
showPaused();
HideUI();
}
else //This is the problem... Not a single resume
{
ShowUI();
hidePaused();
Debug.Log("resume");
}
}
您可以使用我在下面給出的腳本更改您的腳本。
using System.Collections.Generic;
using UnityEngine;
public class PausedMenu : MonoBehaviour
{
public static bool Paused = false;
public GameObject pauseUI;
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (Paused)
{
ClickResumeButton();
}
else
{
ClickPauseButton();
}
}
}
public void ClickResumeButton()
{
pauseUI.SetActive(false);
Time.timeScale = 1f;
Paused = false;
}
public void ClickPauseButton()
{
pauseUI.SetActive(true);
Time.timeScale = 0f;
Paused = true;
}
}
使用它您可以輕松管理您的 pauseUI。
注意:將您的腳本附加到父游戲對象。 確保您的游戲對象按此順序排列。 PauseCanvas -> PauseUI -> ResumeButton。 你必須把這個腳本交給 PauseCanvas。 你的暫停按鈕在 pauseUI 之外。
您可以使用我在下面給出的這個序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.