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();
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM