首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不重新加载GameScene的情况下在Unity3d中重新加载UIScene

在不重新加载GameScene的情况下在Unity3d中重新加载UIScene
EN

Stack Overflow用户
提问于 2017-07-30 14:10:40
回答 1查看 43关注 0票数 1

我有两个场景"GamePlay“和"GameUI”。

我额外地加载了GameUI和GamePlay

代码语言:javascript
复制
void Awake () {
    if (!instance) {
        instance = this;
    } else {
        Destroy(this.gameObject) ;
    }

    SceneManager.LoadScene ("GameUI", LoadSceneMode.Additive);
    DontDestroyOnLoad(this.gameObject);
}

现在,当我重新加载"GamePlay“场景时

代码语言:javascript
复制
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);

如何防止重新加载"GameUI“场景?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-31 08:12:24

您可以添加一个附加到MonoBehaviour的GameUI,该GameUI包含一个静态bool,它指示对象是否存在。使用下面的脚本使整个UI场景成为一个对象的子对象。

代码语言:javascript
复制
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)检查UI是否已经在场景中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45400703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档