unity, 慎用DontDestroyOnLoad

如果想让一个节点切换场景时不销毁,可以为它添加如下脚本:

using UnityEngine;
using System.Collections;

public class dontDestroyOnLoad : MonoBehaviour {

    void Start () {
        //ref: http://answers.unity3d.com/questions/13130/scene-to-scene-variables.html
        //ref: http://stackoverflow.com/questions/14219314/unity3d-editable-global-variables
        DontDestroyOnLoad (this);
    }
}

但这样做十分危险,例如下面情况:

假设scene1上节点node挂了上面脚本,那么反复进行如下操作scene1切换到scene2,scene2切换回scene1,scene1切换到scene2,...

则node个数会不断增加,直至程序崩溃。

所以,还是永远不要用DontDestroyOnLoad吧。

原文地址:https://www.cnblogs.com/wantnon/p/4752706.html