设置模型 将模型从另一个场景加载到当前场景中
1.先加载场景,然后设置场景里的模型到当前场景
2.代码如下:
这是每个场景的名称
private string[] sceneNames = new string[] { "B1", "一层", "二层","三层","四层","五层","六层","七层" };
private string[] loucengNames = new string[]{"每个场景中的模型名字"}
// 开始加载所有场景 public void LoadScenes() { StartCoroutine(LoadScenesCoroutine()); } // 异步加载场景的协程方法 IEnumerator LoadScenesCoroutine() { foreach (var sceneName in sceneNames) { SceneManager.LoadScene(sceneName, LoadSceneMode.Additive); //asyncLoad.allowSceneActivation = true; // 当场景加载完毕时,允许激活新场景 Debug.Log("场景加载完毕"); } yield return null; int aa = 0; foreach (var item in sceneNames) { SettingTransform(item,loucengNames [aa]); aa++; } for (int i = 0; i < louLists.Count; i++) { louLists[i].parent = zongParent; louPosLists.Add(louLists[i].position); } } /// <summary> /// 设置模型 将模型从另一个场景加载到当前场景中 /// </summary> /// <param name="name_">scence场景名称</param> /// <param name="lou">scence场景中某一个模型的名字</param> public void SettingTransform(string name_,string lou) { Scene scenezong = SceneManager.GetActiveScene(); Scene scene = SceneManager.GetSceneByName(name_); List<GameObject> rootGameObjects = new List<GameObject>(); scene.GetRootGameObjects(rootGameObjects); Transform obj = rootGameObjects.Find(o => o.name == lou).transform; louLists.Add ( obj); SceneManager.MoveGameObjectToScene(obj.gameObject, scenezong); }
报错的可以先忽略

浙公网安备 33010602011771号