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;
}
}