1、运行时创建场景 poolScene = SceneManager.CreateScene(name); 类似将场景拖入
2、SceneManager.SetActiveScene(scene); 设置为活跃场景 将获得这个场景相关效果 如灯光等(需要先烘焙)
3、SceneManager.UnloadSceneAsync(loadedBuildIndex); 卸载场景 直接Hierarchy消失
4、
//我们试图再次创建池场景,但这将失败,因为具有该名称的场景已经存在。但可以通过检查池场景是否已经通过场景加载来防
止这种情况。判定Scene.isLoaded如果为真,我们在创建场景之前中止。
//这似乎行不通。这是因为场景是一个结构体,而不是对实际场景的直接引用。因为它是不可序列化的,所以重新编译会将结构重新设置为默认值,默认值表示一个已卸载的场景。我们需要通过SceneManager.GetSceneByName方法请求一个新的连接。
_poolScene = SceneManager.GetSceneByName(_poolSceneStr);
if (!_poolScene.isLoaded)
{
_poolScene = SceneManager.CreateScene(_poolSceneStr);
}
SceneManager.MoveGameObjectToScene(go, _poolScene);
5、SceneManager.LoadScene(sceneIndex, LoadSceneMode.Additive);这样附加场景,场景不会直接加载成功,需要获得此场景中的东西,在SceneManager.sceneLoaded添加