问题描述
我正在为我的 Unity 项目开发 UI,我需要在我们开始玩的关卡上显示我的主菜单。例如,如果我们从第 1 级开始玩,则应该显示 MainMenu 画布面板,并且不应在整个游戏会话的任何其他级别显示。它应该只在像这样重新启动游戏后显示。我打开游戏,显示 Game Begins (Level1) 主菜单,我们玩到第 10 级并关闭游戏。我们稍后打开它,游戏现在应该从第 10 级的场景开始,主菜单画布在其上方。我们点击播放我们玩游戏。所以我希望这个画布每个会话只显示一次,而不是每个级别。 实现这个主菜单在场景上的叠加。如下图所示,我在每个级别都以这种方式设置了画布。enter image description here
解决方法
static bool
怎么样。将脚本附加到您的画布,该脚本将根据静态布尔值是假还是真来激活或停用画布游戏对象。静态 bool 将导致它在每个游戏中创建一次并在所有 LoadMenuOnce
脚本(或您决定将其添加到的任何脚本)中共享。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadMenuOnce : MonoBehaviour
{
protected static bool menuLoadedOnce = false;
// Start is called before the first frame update
void Start()
{
if (menuLoadedOnce == false)
{
gameObject.SetActive(true);
menuLoadedOnce = true;
}
else
{
gameObject.SetActive(false);
}
}
}