バックグラウンドで非同期でレベルをロードします。
Unityがバックグラウンドにあるローディングスレッドのシーン内の全てのアセット・全てのオブジェクトを全てロードします。 これは現在のレベルを再生している間、プログレスバーの表示や ゲームプレイ中にしゃっくりを発生させることなくプレイヤーの位置に基づいて世界の一部をロードしたり、 アンロードしたりすることで完全なストリーミング世界の作成するような新しいレベルのロードが可能になります。 レベルのロードが完了した場合、AsyncOperationの結果として isDone 変数で確認することが出来ます。 LoadLevelAsyncの結果は コルーチンの yield でも使用することが出来ます。 プレイヤーをビルドする時、Unityは自動でLoadLevelAsyncがディスクからのロードで直線的なシーク時間を避けるために、このような方法でアセットを最適化します。 バックグラウンドでのロードのパフォーマンスは Unityエディタ上ではWebPlayerやスタンドアローンにビルドしたものより性能が低い結果になることに注意してください。 エディタではプレイヤよりもローディング中にしゃっくりが多く発生するかもしれません。 この関数は Unity Pro が必要です。
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"); } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): def Start() as IEnumerator: async as AsyncOperation = Application.LoadLevelAsync('MyBigLevel') yield async Debug.Log('Loading complete')