【制作】実行時エラーの扱い

まだまだ、ダンジョン実装の方は思うように進んでいない。

最低限のダンジョンパーツでダンジョンを仮組しただけ。それが冒頭の画像。

今日はダンジョン実装に加えてシステム周りの手入れをしていた。

たとえば、エラー処理。

原則として、発生するエラーは全てバグ扱いにしている。

つまり、起きるはずがないエラーとして扱い、ゲームを中断させるポリシーで行こうと。

ただ、その際にアプリケーションがフリーズしたり、突然シャットダウンするのは、ユーザーにとって不親切だ。

そこで、エラーが出た場合(フォルダが存在しないとか、リソースの読み込みに失敗したとか、リリース時には起こらないはずのもの)は、画面にメッセージとエラー情報を出して、いったんタイトル画面に戻る、という方針で手入れした。

その際、ゲーム画面にはいろいろなものが存在するわけで、中途半端なエラー状態で画面をとめた場合に、見せたくないものが見えてしまう可能性もある。

また、画面の状態によっては、いつでもメッセージが表示できるとは限らない。

そこで、エラー専用のシーンを追加することで、いったんゲームオブジェクトを全て破棄し、クリーンな状態でメッセージだけを表示することにした。

実装も簡単で、エラーを把捉したら、Application.LoadLevel() を呼び出すだけだ。

ただし、シーンを移動したらゲームオブジェクトは全て破棄されてしまうので、シーン間で保持したいゲームオブジェクトがあれば、DontDestroyOnLoad()を使う必要がある。

また、単純にエラーメッセージだけを次のシーンにも引き継ぎたいという程度であれば、public static な変数をどこかに定義して、移動先のシーンで呼び出すと値が保持されている。

アンリアルエンジン4と違って、Unityはコードによるコントロールがメインだから、プログラム畑出身の俺にはやっぱりUnityがわかりやすいんだよなあ。

ああ、UE4もちゃんと復習しないとまた一からやり直しになりそうだな。とほほ。

4年前

コメントを残す

メールアドレスが公開されることはありません。