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