Application.LoadLevel()でのエラーハンドリング
ステージ毎にシーンを分けて作っていて、そのシーンを
Application.LoadLevel("Stage" + n);
って感じで読み込んでいる。
何らかのミスでそのシーンが存在しない場合はエラーになるが、調べた感じだとうまいエラーハンドリングが見当たらない。
Exceptionをcatchできるわけでもないし、そもそもそのシーンが存在しているかどうかを調べる方法もないっぽい?
どうしたもんかなー、とぼんやり考えていて、結局こうすることにした。
IDisposable timer; void Load() { Application.LoadLevelAsync("Stage" + n); // x秒以内に読み込み完了しないということは、存在しないと判断する timer = Observable.Timer(TimeSpan.FromSeconds(x)) .Subscribe(_ => { // エラーハンドリング処理 }); } // 読み込み先シーンから叩かせるメソッド void OnLoaded() { timer.Dispose(); }
タイマーの部分は別にコルーチンでも何でも。