更改场景时DontDestroyOnLoad销毁对象

时间:2019-05-04 12:28:12

标签: c# unity3d admob game-development

我想将admob添加到我的游戏中,并且不想每次更改场景时都请求/加载广告。 我尝试使用“ DontDestroyOnLoad”解决该问题,但是当我在其他场景之间切换时,以某种方式将附着我的AdManager脚本的对象销毁。

这是我写到AdManager脚本中的代码。

private static bool created = false;
...
void Awake()
{
    if (!created)
    {
        DontDestroyOnLoad(gameObject);
        created = true;
    }
    else
    {
        Destroy(gameObject);
    }
}

(在我开始游戏时)在主菜单中调用AdManager脚本。当我按下“开始”按钮时,AdManager脚本应该可以在其他场景中使用,但它只会消失/被破坏。

1 个答案:

答案 0 :(得分:1)

您还应该有一个变量供其自己参考。

 private static [YourScriptName] _instance = null;
 public static [YourScriptName] Instance
 {
     get { return _instance; }
 }


 void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(gameObject);
         return;
     }

     _instance = this;

     DontDestroyOnLoad(gameObject);
 }

让我知道是否有帮助。