# UnloadSceneAsync

> Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.SceneManagement](/engine/6000.6/script-reference/unityengine/scenemanagement.md)
* **Assembly:** UnityEngine.CoreModule

## UnloadSceneAsync(int)

Destroys all GameObjects associated with the given Scene and removes the Scene from the SceneManager.

```csharp
public static AsyncOperation UnloadSceneAsync(int sceneBuildIndex)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Index of the Scene in BuildSettings.

### Returns

| Type                                                                            | Description                                                                                                                          |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) | Use the [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) 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](/engine/6000.6/script-reference/unityengine/resources/unloadunusedassets.md).

**Note:** It is not possible to [SceneManager.UnloadSceneAsync](/engine/6000.6/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md) 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.

```csharp
public static AsyncOperation UnloadSceneAsync(string sceneName)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Name or path of the Scene to unload.

### Returns

| Type                                                                            | Description                                                                                                                          |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) | Use the [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) 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](/engine/6000.6/script-reference/unityengine/resources/unloadunusedassets.md).

**Note:** It is not possible to [SceneManager.UnloadSceneAsync](/engine/6000.6/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md) 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.

```csharp
public static AsyncOperation UnloadSceneAsync(Scene scene)
```

### Parameters

**** (\[Scene]\(/engine/6000.6/script-reference/unityengine/scenemanagement/scene)): Scene to unload.

### Returns

| Type                                                                            | Description                                                                                                                          |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) | Use the [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) 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](/engine/6000.6/script-reference/unityengine/resources/unloadunusedassets.md).

**Note:** It is not possible to [SceneManager.UnloadSceneAsync](/engine/6000.6/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md) 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.

```csharp
public static AsyncOperation UnloadSceneAsync(int sceneBuildIndex, UnloadSceneOptions options)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Index of the Scene in BuildSettings.**** (\[UnloadSceneOptions]\(/engine/6000.6/script-reference/unityengine/scenemanagement/unloadsceneoptions)): Scene unloading options.

### Returns

| Type                                                                            | Description                                                                                                                          |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) | Use the [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) 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](/engine/6000.6/script-reference/unityengine/resources/unloadunusedassets.md).

**Note:** It is not possible to [SceneManager.UnloadSceneAsync](/engine/6000.6/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md) 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.

```csharp
public static AsyncOperation UnloadSceneAsync(string sceneName, UnloadSceneOptions options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Name or path of the Scene to unload.**** (\[UnloadSceneOptions]\(/engine/6000.6/script-reference/unityengine/scenemanagement/unloadsceneoptions)): Scene unloading options.

### Returns

| Type                                                                            | Description                                                                                                                          |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) | Use the [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) 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](/engine/6000.6/script-reference/unityengine/resources/unloadunusedassets.md).

**Note:** It is not possible to [SceneManager.UnloadSceneAsync](/engine/6000.6/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md) 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.

```csharp
public static AsyncOperation UnloadSceneAsync(Scene scene, UnloadSceneOptions options)
```

### Parameters

**** (\[Scene]\(/engine/6000.6/script-reference/unityengine/scenemanagement/scene)): Scene to unload.**** (\[UnloadSceneOptions]\(/engine/6000.6/script-reference/unityengine/scenemanagement/unloadsceneoptions)): Scene unloading options.

### Returns

| Type                                                                            | Description                                                                                                                          |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) | Use the [AsyncOperation](/engine/6000.6/script-reference/unityengine/asyncoperation.md) 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](/engine/6000.6/script-reference/unityengine/resources/unloadunusedassets.md).

**Note:** It is not possible to [SceneManager.UnloadSceneAsync](/engine/6000.6/script-reference/unityengine/scenemanagement/scenemanager/unloadsceneasync.md) if there are no scenes to load.  For example, a project that has a single scene cannot use this static member.
