Version: 2021.3
LanguageEnglish
  • C#

AudioClip.loadInBackground

Suggest a change

Success!

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.

Close

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.

Close

Cancel

Switch to Manual
public bool loadInBackground;

Description

Enable this property to load the AudioClip asynchronously in the background instead of on the main thread. Set this property in the Inspector (Read Only).

This property is useful if you have a lot of files or large files to load. If you load them in a separate thread from the main thread, it can help prevent frame rate drops. You can’t change this property during runtime so if you need to set this property, do one of the following before you enter Play mode:

// This script outputs the load status and the loadInBackground setting for each clip. 
// Attach this script to a GameObject in your Scene. 
// Fill the Audio Clips To Preload array with audio clips. 
// In each audio clip, enable Preload Asset Data in the Inspector. 

using UnityEngine; using System.Collections;

public class LoadInBackgroundExample : MonoBehaviour { public AudioClip[] audioClipsToLoad;

void Start() { // Preload audio clips. StartCoroutine(LoadAudioClips()); }

private IEnumerator LoadAudioClips() { foreach (AudioClip clip in audioClipsToLoad) { // Check if the clip is set to load in the background. if (clip.loadInBackground) { Debug.Log($"Loading {clip.name} in background."); } else { Debug.LogWarning($"AudioClip {clip.name} is NOT set to load in the background."); }

// Check if the audio clip has finished loading. while (clip.loadState == AudioDataLoadState.Loading) { Debug.Log($"AudioClip {clip.name} is still loading."); yield return null; } Debug.Log($"AudioClip {clip.name} is fully loaded."); } Debug.Log("Loading complete."); } }