Version: 2017.3 (switch to 2018.1b)
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Method group is Obsolete


Suggest a change


Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.


Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.



Obsolete public static method LoadLevelAsync(index: int): AsyncOperation;
Obsolete public static AsyncOperation LoadLevelAsync(int index);
Obsolete public static method LoadLevelAsync(levelName: string): AsyncOperation;
Obsolete public static AsyncOperation LoadLevelAsync(string levelName);


Loads the level asynchronously in the background.

Unity will completely load all assets and all objects in the scene in a background loading thread. This allows you to load new levels while still playing the current one, show a progress bar or create a completely streaming world where you constantly load and unload different parts of the world based on the player position, without any hiccups in game play.

isDone variable from the resulting AsyncOperation can be used to query if the level load has completed. The result of a LoadLevelAsync can also be used to yield in a coroutine.

When building a player Unity automatically optimizes assets in such a way that LoadLevelAsync will load them from disk linearly to avoid seek times. Note that background loading performance in the Unity Editor is much lower than in the standalone build. In the Editor you might also get more loading hiccups than in the player.

function Start () {
    // Load the level named "MyBigLevel".
    var async : AsyncOperation = Application.LoadLevelAsync ("MyBigLevel");
    yield async;
    Debug.Log ("Loading complete");
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { IEnumerator Start() { AsyncOperation async = Application.LoadLevelAsync("MyBigLevel"); yield return async; Debug.Log("Loading complete"); } }

See Execution Order of Event Functions for more information regarding the calling sequence once a level is loaded. See Also: AsyncOperation, Application.backgroundLoadingPriority, Application.LoadLevel, Application.LoadLevelAdditive, Application.LoadLevelAdditiveAsync.

Did you find this page useful? Please give it a rating: