场景来回切换的时候dontdestroy的物体

本来是个很简单的事情,是怎么回事呢???是因为我们在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还是会执行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值