我有2个场景“GamePlay”和“GameUI”。
我使用GamePlay加载GameUI
void Awake () {
if (!instance) {
instance = this;
} else {
Destroy(this.gameObject) ;
}
SceneManager.LoadScene ("GameUI", LoadSceneMode.Additive);
DontDestroyOnLoad(this.gameObject);
}
现在我使用
重新加载“GamePlay”场景SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
如何防止重新加载“GameUI”场景?
答案 0 :(得分:1)
您可以添加附加到GameUI的MonoBehaviour
,其中包含一个静态bool,指示对象是否存在。使用以下脚本使整个UI场景成为一个对象的子项。
public class UIExistance : MonoBehaviour
{
public static bool Exists { get; private set; }
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
UIExistance.Exists = true;
}
void OnDestroy()
{
UIExistance.Exists = false;
}
}
当您使用发布的Awake
方法时,可以使用if(!UIExistance.Exists)
查看用户界面是否已在场景中。