LoadLevelAsync
Unity - Scripting API: AsyncOperation
非同期でシーンを読み込むメソッド(Pro版のみ)
シーン読み込み後に何かキーを押したら次へ進むをやりたいとき。
allowSceneActivationは、準備が終わり次第なるべく早くロードされたシーンに切り替えるというフラグなので、非同期読み込みが終わった瞬間にシーンを切り替えたければ最初からtrueにする。(原文→Allow scenes to be activated as soon as it is ready.)
AsyncOperation.progressは、進行度でこの値の範囲は明記されてないけど、ログで見る限り終わったら0.9fになるので、これを超えた範囲になれば読み込み完了と判断。
(isDoneはいつまでもfalse)
private ASyncOperation asyn;
public string SceneName;
void Start() {
asyn = Application.LoadLevelAsync(SceneName);
asyn.allowSceneActivation = false;
}
void Update() {
if ( asyn.progress >= 0.9f )
{
// 読み込み終わったときにシーンを動かすならここ
if ( Input.anyKeyDown )
{
asyn.allowSceneActivation = true;
}
}
}
LoadLevelAsyncの説明だと、LoadLevelASyncを呼んだあとに
yield return async;
していた。(コルーチンで終了待ちを別途書く