unity3d关于方法DontDestroyOnLoad的研究

原创 2015年11月20日 15:51:57

方法DontDestroyOnLoad是干什么的呢?

在场景跳转时,有些对象需要保留,这个就是说可以保留对象的。那怎么用,下面介绍一下用法

建一个场景,建一个空物体,给其添加脚本

<pre name="code" class="csharp">public class one : MonoBehaviour {

    public GameObject a;
    public GameObject b;
	void Start () {

        DontDestroyOnLoad(a);
        DontDestroyOnLoad(b);
	}
    void OnGUI()
    {
        
        if (GUILayout.Button("2"))
        {
            Application.LoadLevel(1);
        }
    }




这里为了简单的测试,就设置了一个public字段,用拖的方式给其初始化。a拖一个cube,b这里就拖自己;这里可以发现这个方法是可以重复使用的,而且是可以在Awake或者Start里的,下面设置一个新的场景就完成跳转了,

那么如果这个对象有子级,子级能不能保留呢,给cube下在设置一个cube,可以发现,子级是可以保留的;

那意思是说我们把UGUI的画布拖给a,里面的UI就保留到下一个场景里了;设置一个image,用过UGUI的知道,会自动生成一个Canvas,和一个EventSystem,把Cavas拖给a,运行unity,这个时候会发现,下个场景中是保留了image,但是没有EventSystem。所以说还是要手动保存一下。这里也是UGUI没有NGUI的方便之处


那么如果把这个挂有脚本的gameobject,拖给cube作为子物体,在给其建一个同级的一个cube,命名cube1(用于区分),我们把cube1拖给a,运行时会发现,下个场景不会保存

,所以说有父级的物体,父级不保留,子级保留是没有用的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

u3d DontDestroyOnLoad

某些情况下,主场景里面的一些脚本需要一直运行,这是就需要用到DontDestroyOnLoad 当主场景切换到子场景的时候,这些设置的资源一直保留并运。

DontDestroyOnLoad带来的麻烦

GameObject.DontDestroyOnLoad(GameObjectxxx),它的作用就是让某物体创建之后不再随场景而销毁。这个功能是很有用的,比如联网模块、音效模块,作为网游肯定是时刻存在...
  • cbbbc
  • cbbbc
  • 2015-09-10 00:41
  • 2612

Unity 3D DontDestroyOnLoad 函数使用注意事项

Object.DontDestroyOnLoad 加载时不销毁 static function DontDestroyOnLoad (target : Object) : void ...

Unity3D中DonotDestroyOnLoad()需要注意的方面

Unity3D中调用DoNotDestroyOnLoad()函数注意事项

DontDestroyOnLoad(Unity3D开发之五)

Unity中我们从A场景切换到B场景的时候,A场景所有对象都会销毁,但有时候我不需要销毁某些东西。比如一个简单的游戏的背景音乐,我不需要多次重复创建,多个场景播放这一个就行了。这个时候就需要用到Don...

unity使用json的个人心得

json, 实际上就是一种规范的存储数据的结构,它具有结构简明、实现方便、多变万用、跨平台等特点,深受人们喜爱。Unity的工程,在自身数据结构设计方面、数 据的内存与外存转换方面、以及与服务器沟通方...
  • cbbbc
  • cbbbc
  • 2015-09-10 00:37
  • 1197

Unity3d中关于Awake()、Start()、OnEnable()等的执行顺序关系

最近在面试中遇到这样的问题,没有能够很好的回答,回来后经过试验和查验资料,发现一篇文章讲解的比较完整,直接搬过来翻译一下吧 原文地址:http://answers.unity3d.com/q...

Unity3D研究院之DontDestroyOnLoad的坑

Unity中的一个方法DontDestroyOnLoad可以让某些游戏对象在切换场景的时候不是施放,听起来是一个非常好的方法,但是其实如果没用好那么可能就是有问题了。 举个例子: 在场景1...

Unity3D之DontDestroyOnLoad的坑

Unity中的一个方法DontDestroyOnLoad可以让某些游戏对象在切换场景的时候不是施放,听起来是一个非常好的方法,但是其实如果没用好那么可能就是有问题了。举个例子:在场景1中某一个脚本的S...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)