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的坑