unity DontDestroyOnLoad遇到的坑

 Unity3D提供了一个不删除前一个场景中的某一个对象或者脚本的API——DontDestoryOnLoad(对象或者某个脚本)。

它是为了在游戏开发中可以创建多个场景,但又不会因为场景过度而删除对象。

但是我们在用这个API的时候我们会发现一个很奇怪的问题就是:如果A里面放了个东西o,当到场景B的时候,o 也会出现在B场景中,这里一看,感觉还是对的,然后你再返回到场景A, 你就会惊讶的发现,A里面出现了两个o,然后你到B,看到B里面也出现了两个o, 再回到A, A里面出现了3个o, 一直递增上去。

我这里用了一个静态的 bool 来判断

public static class SeverDate
{
    public static bool isDontDestory = true;
}

private void Awake()
{

    if (SeverDate.isDontDestory)
    {
        DontDestroyOnLoad(gameObject);
        SeverDate.isDontDestory = false;
    }
}
发布了23 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42047805/article/details/95365567