unity 获取DontDestroyOnLoad的游戏对象

Posted kingbook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity 获取DontDestroyOnLoad的游戏对象相关的知识,希望对你有一定的参考价值。

private GameObject[] getDontDestroyOnLoadGameObjects()
    var allGameObjects=new List<GameObject>();
    allGameObjects.AddRange(FindObjectsOfType<GameObject>());
    //移除所有场景包含的对象
    for(var i=0;i<SceneManager.sceneCount;i++)
        var scene=SceneManager.GetSceneAt(i);
        var objs=scene.GetRootGameObjects();
        for(var j=0;j<objs.Length;j++)
            allGameObjects.Remove(objs[j]);
        
    
    //移除父级不为null的对象
    int k=allGameObjects.Count;
    while(--k>=0)
        if(allGameObjects[k].transform.parent!=null)
            allGameObjects.RemoveAt(k);
        
    
    return allGameObjects.ToArray();

以上是关于unity 获取DontDestroyOnLoad的游戏对象的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D研究院之DontDestroyOnLoad的坑

DontDestroyOnLoad(Unity3D开发之五)

18年7月实训unity项目中遇到的问题记录

unity怎么删除物体

Unity Object类

Unity3D HideFlags