→ゲーム本体はこちらから
とりあえず、こんな感じ。エンカウント演出だけじゃなく、他にもシーンのつなぎの部分も修正を入れた。今までは目を凝らしてみるとシーンの繋がりが汚かったと思うけど、だいぶ改善されていると思う。
今回はいろいろ問題が発生して手間取ったので、忘れないように書いておこうと思う。
まず、シーンの切り替えで起きた問題について。シーン切り替えは、コルーチンを使ってその中で管理していたんだけど、非同期読み込みのLoadSceneAsyncを使うとなぜか途中で停止してしまい仕方が無いので同期読み込みLoadSceneを使ってごまかしていた。
今回調べて分かったことが、StartCoroutineを書いて関数を呼び出した側がコルーチンの進行を管理するってこと。
だから、今まではLoadSceneAsyncを使うと、あたかもロードが終わらない不具合に見えていたんだけど、実際は呼び出し元のコルーチンがシーン削除と同時に消え、それで処理が止まってしまっていた。てっきりコルーチンを定義しているオブジェクト内で管理しているものだと思っていたんだけど全然違かったw
次に、シーンを切り替えた時に一部の2Dの描画順序が狂うという問題。
具体的には、描画順序の制御のために、キャンバスコンポーネントを持たせたGUIイメージオブジェクトを、描画対象をオーバーレイではなくカメラに設定したまま何かしらのシーンをロード、アンロードすると、上記のオブジェクトの描画順序が狂ってしまう。
これはユニティエディタ内でのみ発生している問題で無視してもよかったんだけど、かなりうざかったのでシーン切り替えの瞬間に描画対象をオーバーレイに戻し、シーンのロードが終了したら再度カメラに戻すことで強引に対処したw
最後がゲーム容量肥大化問題。
このゲームのアップロード先としてGitHubを使っているんだけど、無料版の場合、1ファイルの最大容量が100mバイトまでという制限がある。今回急にそれをオーバーしてしまい、調べたところ、後で使おうと思って購入したセール中のアセット『Camera Play』が原因だった。(ちなみに現在70%offで15ドル)

(圧縮前のサイズ)
Resourcesフォルダ以下のものは全てビルド対象に含まれることは知っていたけど、販売されているアセットについては全く考えていなかったので結構驚いた。
ゲームデータに関しては後々アセットバンドルで分けるつもりだけど、ダウンロードしたアセットに関しては気を付けないとすぐに容量オーバーしてしまうかもしれない。特にエフェクト関係はアセットストアでちゃちゃっと済ませようと思っていただけに、思っていたより面倒になるかもしれないw
次はセーブロード周りの処理を入れ込もうと思う。
0 件のコメント:
コメントを投稿
お気軽にどうぞ。
※他の方から見て不快になるもの、記事の内容から逸脱したものは削除することがあります。
管理人からの返信は必ず行われるわけではありません。