本来是个很简单的事情,是怎么回事呢???是因为我们在00场景里有两个物体需要dontdestroy过渡到01和02两个场景,但是00 01 02三个场景来回切换就造成了dontdestroy的物体不能及时释放的问题,这样dontdestroy物体就会累积。解决这件事情的方法是:
我们新建一个场景叫000然后把我们需要dontdestroy的物体放在里面,里面什么也不放
然后在其中一个物体的脚本上写
void Start()
{
UnityEngine.Object[] initsObjects = GameObject.FindObjectsOfType(typeof(GameObject));
foreach (UnityEngine.Object go in initsObjects)
{
DontDestroyOnLoad(go);
}
UnityEngine.SceneManagement.SceneManager.LoadScene(“ceshi_00”);
}
意思是找所有类型为GameObject类型的物体然后命名为initsObject然后在遍历将其DontDestroyOnLoad(go)
最后在Start里面直接跳转到00这个场景,这样之所以可以是因为这个场景我们只用一次,下次就不会用了,这样就不会产生累积的问题。然后我们在Start里面直接跳转到00这个场景,这样在外面我们也看不出来是还有一个场景的,但是在这里我们需要注意一个问题就是我们这个脚本是过渡到下一个场景中的,因此Start不会执行,所以我们可以得知Start只会在我们新建的场景000里面执行一次。但是如果我们要是再次跳转到场景000里面,里面的Start还是会执行的。
场景来回切换的时候dontdestroy的物体
最新推荐文章于 2023-05-31 11:46:40 发布