Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


UnloadSceneAsync

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
Read time 6 minutesLast updated 10 days ago

Definition

UnloadSceneAsync(int)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
public static AsyncOperation UnloadSceneAsync(int sceneBuildIndex)

Parameters

sceneBuildIndex

Index of the Scene in BuildSettings.

Returns

Type

Description

AsyncOperationUse the AsyncOperation to determine if the operation has completed.

Remarks

The given Scene name can either be the full Scene path, the path shown in the Build Settings window or just the Scene name. If only the Scene name is given this will unload the first Scene in the list that matches. If you have multiple Scenes with same name but different paths, you should use the full Scene path. Examples of supported formats:
"Scene1"
"Scene2"
"Scenes/Scene3"
"Scenes/Others/Scene3"
"Assets/scenes/others/scene3.unity"
Note: This is case-insensitive and due to it being async there are no guarantees about completion time.
Note: Assets are currently not unloaded. In order to free up asset memory call Resources.UnloadUnusedAssets.
Note: It is not possible to SceneManager.UnloadSceneAsync if there are no scenes to load. For example, a project that has a single scene cannot use this static member.

UnloadSceneAsync(string)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
public static AsyncOperation UnloadSceneAsync(string sceneName)

Parameters

sceneName

Name or path of the Scene to unload.

Returns

Type

Description

AsyncOperationUse the AsyncOperation to determine if the operation has completed.

Remarks

The given Scene name can either be the full Scene path, the path shown in the Build Settings window or just the Scene name. If only the Scene name is given this will unload the first Scene in the list that matches. If you have multiple Scenes with same name but different paths, you should use the full Scene path. Examples of supported formats:
"Scene1"
"Scene2"
"Scenes/Scene3"
"Scenes/Others/Scene3"
"Assets/scenes/others/scene3.unity"
Note: This is case-insensitive and due to it being async there are no guarantees about completion time.
Note: Assets are currently not unloaded. In order to free up asset memory call Resources.UnloadUnusedAssets.
Note: It is not possible to SceneManager.UnloadSceneAsync if there are no scenes to load. For example, a project that has a single scene cannot use this static member.

UnloadSceneAsync(Scene)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
public static AsyncOperation UnloadSceneAsync(Scene scene)

Parameters

scene

Scene to unload.

Returns

Type

Description

AsyncOperationUse the AsyncOperation to determine if the operation has completed.

Remarks

The given Scene name can either be the full Scene path, the path shown in the Build Settings window or just the Scene name. If only the Scene name is given this will unload the first Scene in the list that matches. If you have multiple Scenes with same name but different paths, you should use the full Scene path. Examples of supported formats:
"Scene1"
"Scene2"
"Scenes/Scene3"
"Scenes/Others/Scene3"
"Assets/scenes/others/scene3.unity"
Note: This is case-insensitive and due to it being async there are no guarantees about completion time.
Note: Assets are currently not unloaded. In order to free up asset memory call Resources.UnloadUnusedAssets.
Note: It is not possible to SceneManager.UnloadSceneAsync if there are no scenes to load. For example, a project that has a single scene cannot use this static member.

UnloadSceneAsync(int, UnloadSceneOptions)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
public static AsyncOperation UnloadSceneAsync(int sceneBuildIndex, UnloadSceneOptions options)

Parameters

sceneBuildIndex

Index of the Scene in BuildSettings.

Scene unloading options.

Returns

Type

Description

AsyncOperationUse the AsyncOperation to determine if the operation has completed.

Remarks

The given Scene name can either be the full Scene path, the path shown in the Build Settings window or just the Scene name. If only the Scene name is given this will unload the first Scene in the list that matches. If you have multiple Scenes with same name but different paths, you should use the full Scene path. Examples of supported formats:
"Scene1"
"Scene2"
"Scenes/Scene3"
"Scenes/Others/Scene3"
"Assets/scenes/others/scene3.unity"
Note: This is case-insensitive and due to it being async there are no guarantees about completion time.
Note: Assets are currently not unloaded. In order to free up asset memory call Resources.UnloadUnusedAssets.
Note: It is not possible to SceneManager.UnloadSceneAsync if there are no scenes to load. For example, a project that has a single scene cannot use this static member.

UnloadSceneAsync(string, UnloadSceneOptions)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
public static AsyncOperation UnloadSceneAsync(string sceneName, UnloadSceneOptions options)

Parameters

sceneName

Name or path of the Scene to unload.

Scene unloading options.

Returns

Type

Description

AsyncOperationUse the AsyncOperation to determine if the operation has completed.

Remarks

The given Scene name can either be the full Scene path, the path shown in the Build Settings window or just the Scene name. If only the Scene name is given this will unload the first Scene in the list that matches. If you have multiple Scenes with same name but different paths, you should use the full Scene path. Examples of supported formats:
"Scene1"
"Scene2"
"Scenes/Scene3"
"Scenes/Others/Scene3"
"Assets/scenes/others/scene3.unity"
Note: This is case-insensitive and due to it being async there are no guarantees about completion time.
Note: Assets are currently not unloaded. In order to free up asset memory call Resources.UnloadUnusedAssets.
Note: It is not possible to SceneManager.UnloadSceneAsync if there are no scenes to load. For example, a project that has a single scene cannot use this static member.

UnloadSceneAsync(Scene, UnloadSceneOptions)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.
public static AsyncOperation UnloadSceneAsync(Scene scene, UnloadSceneOptions options)

Parameters

scene

Scene to unload.

Scene unloading options.

Returns

Type

Description

AsyncOperationUse the AsyncOperation to determine if the operation has completed.

Remarks

The given Scene name can either be the full Scene path, the path shown in the Build Settings window or just the Scene name. If only the Scene name is given this will unload the first Scene in the list that matches. If you have multiple Scenes with same name but different paths, you should use the full Scene path. Examples of supported formats:
"Scene1"
"Scene2"
"Scenes/Scene3"
"Scenes/Others/Scene3"
"Assets/scenes/others/scene3.unity"
Note: This is case-insensitive and due to it being async there are no guarantees about completion time.
Note: Assets are currently not unloaded. In order to free up asset memory call Resources.UnloadUnusedAssets.
Note: It is not possible to SceneManager.UnloadSceneAsync if there are no scenes to load. For example, a project that has a single scene cannot use this static member.