バックグラウンドでレベルを非同期で加算的にロードします。
LoadLevelAsync とは異なり、LoadLevelAdditiveAsyncは現在のレベルのゲームオブジェクトを破棄することはありません。 新しいレベルからロードしたオブジェクトは現在のシーンに追加されます。 これは連続的な仮想世界を作成するのに便利です。 例えばシーン内を歩きまわるようなコンテンツをロードする時です。 Unityがバックグラウンドにあるローディングスレッドのシーン内の全てのアセット・全てのオブジェクトを全てロードします。 これは絶えずにロードとワールド世界でのプレイヤー位置に基づいて 一部のアセットをアンロードするストリーミング世界を完璧に、ゲーム再生中にしゃっくり無しで作成することが出来ます。 レベルのロードが完了した場合、AsyncOperationの結果として isDone 変数で確認することが出来ます。 LoadLevelAdditiveAsyncの結果は コルーチンの yield でも使用することが出来ます。 プレイヤーをビルドする時、Unityは自動でLoadLevelAdditiveAsyncがディスクからのロードで直線的なシーク時間を避けるために、このような方法でアセットを最適化します。 バックグラウンドでのロードのパフォーマンスは Unityエディタ上ではWebPlayerやスタンドアローンにビルドしたものより性能が低い結果になることに注意してください。 エディタではプレイヤよりもローディング中にしゃっくりが多く発生するかもしれません。 この関数は Unity Pro が必要です。
function Start () { // Load the level named "MyAddLevel". var async : AsyncOperation = Application.LoadLevelAdditiveAsync ("MyAddLevel"); yield async; Debug.Log ("Loading complete"); }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { IEnumerator Start() { AsyncOperation async = Application.LoadLevelAdditiveAsync("MyAddLevel"); yield return async; Debug.Log("Loading complete"); } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): def Start() as IEnumerator: async as AsyncOperation = Application.LoadLevelAdditiveAsync('MyAddLevel') yield async Debug.Log('Loading complete')