ツクロウヤ

Unityによるゲーム開発記

【開発記】進捗報告(6月:1回目)

進捗報告

今回は編成回りのバグ修正やソートの実装、UI制御の仕組みの実装を行っていました。

◆ソート

何はともあれソートをペタッと。

f:id:ArtAwA:20200607222727g:plain

Prefabは腐るほど作ってきましたが、こういったソートなどの中身の処理をやってみたのは初めて!
見た目上は地味ですが、意外にやることが多かった...

編成画面とソート画面はそれぞれ独立した制御になっていますが、ソート画面で選択した情報を元に編成画面の一覧を更新してあげる必要がありました。
そのままだと引き渡しとかが出来ないため、以下のように一個制御を噛ませる形で実装してみました。

   「各UIの処理制御(各UIから入力を受け取って処理)」
     ↑ 入力された情報を      ↓ ソートの情報を
     ↑ 引き渡してリクエスト    ↓ 引き渡してリクエス
   「ソート画面」         「編成画面」

とりあえず他が増えてもパラメータを増やしたり拡張すれば使える形に出来たので、ひとまず良さそう!
ルームとかはそもそもパラメータが無いので、今のところソートなし。
もう少し仕様を詰めて、必要そうだったら追加しましょ。

◆UI制御の仕組み

その他、見た目には何も変わらないのですが、UIが今後も増えてくるため、制御の仕組みを改修しました。
今まで大した量じゃなかったのでベタ置きで参照を持たせていたのですが、UIの制御マネージャーを作成し、そこにリクエストが呼んでUIを生成する形にしました。
描画順を制御はCanvasのSortOrderで制御しており、「LAYER_01」や「SYSTEM」などのレイヤー毎に+100刻み、同じレイヤーでは+1刻みで描画順を制御しています。

f:id:ArtAwA:20200607225447p:plain

今後の予定

最近ずっとUIをやっていたので、間を挟んで、次はルームの数をゲームの進行に合わせて変えられる仕組みを作っていこうかと思います。
序盤はほとんどユニットもルームも持っていないし...

・マップのルーム数を可変する仕組み

おわりに

去年の12月くらいから始めていた週1ブログ更新ですが、もう半年ほど続いている!
所々忙しくて簡単な内容しかやっていないこともありましたが、継続しているだけ十分と思いましょ。
この調子で次は1年を目標に!!

それでは今回はこの辺で
(´・ω・`*)ノシ

【開発記】進捗報告(5月:5回目)

進捗報告

今週はルーム側の編成処理の実装を行っていました。
とりあえずペタッと。

f:id:ArtAwA:20200531214701g:plain

データの更新やらUnityのボタンイベントの設定などでちょっとトラブって、意外に時間がかかった...
データの更新系はとりあえずコルーチンで1フレーム待ったりとか色々対応。

【今回の問題点】

・Button.onClick.AddListenerで中のリストをClearしても残っている

Unityのボタンイベントはボタンイベントが設定されたタイミングで変数類が微妙にキャッシュされている?っぽくて、ListがClearされていなかったりしました。
中で対象のListを持つComponentをGetComponentし直して、そこでClearをしたら解消しました。

今後の予定

ホントはソートまで入れる予定でしたが、予想外に時間がかかったので、まだ未対応。
引き続き対応を行っていきます。
(実はバグもまだ残っている...)

・ソートの実装
・編成のバグ修正

おわりに

編成が終わったら、何するかは考え中。
他機能の実装に行くか、ユニットやルームの種類を増やすか。

それでは今回はこの辺で
(´・ω・`*)ノシ

【開発記】進捗報告(5月:4回目)

進捗報告

今週はお休みも取れ、ちょっと余裕もありましたので、元々予定していていた編成画面の処理の実装+デザインの作成を行っていました。

何はともあれ、ペタッと。

f:id:ArtAwA:20200524214523g:plain

ルーム側の編成処理やソートボタンがありますが、その辺りはまだ実装していません。
この後対応しましょ。

とりあえず編成画面と汎用ダイアログでベースとなるデザインも定まってきたので、あとの画面を増やすのはある程度早く出来そう!
ただ、触れるところがちょっと分かりにくいかも・・・?
その辺は追々で・・・

実装していて気づきましたが、表示面でももうちょい改修が必要そう。
ルームのユニットを選択した際はその下のリスト同様にルームのユニットも選択表示(水色)を出した方が良さそうですし、3D表示の方でも何か矢印とか出してあげた方が何を選択しているのか分かりやすそう。

【今回行き当たった問題】

・SceneManager.LoadSceneAsync(), SceneManager.UnloadSceneAsync()で
 同一のシーンに遷移した際に各挙動がおかしくなる

編成が終わった後にステージの最初から開始するようにしていますが、ゲーム開始からシーン遷移してきた際と同様のため、シーンの読み直しをして最初から開始すればよいだろうと思っていました。

しかし、以下のようなことが起こりました。
・何故かUIを管理しているマネージャーからSerializeFieldで設定している各UIの参照がButtonのAddEventの際だけ切れている
 → Inspector上はあって、Updateでチェックをかけても存在している
・生成したはずのプレイヤーユニットがシーン遷移が開けた後、何故か削除されている
 → どこからもDestroyが呼ばれていない

同一シーンを読み替えるのが本当に良くないのか、なぜ起こるのか、そもそも他の作りが良くないは詳しく分かっていませんが、同一のシーンを読み替えるのではなく、以下のような形で1つ挟むようにしたら、一旦は解消しました。

・StartUp:データ、オーディオなど各マネージャーの読み込み
 ↓
・Loading:セーブデータなどを元にステージ、マップ、ユニットの読み込み
  ↓ ↑ 編成終了したら
・Main :ゲーム画面

今後の予定

書いていたようにルーム側の編成処理やソート周りの実装をしていないので対応していきましょ。

・ルーム編成の実装
・ソートの実装

おわりに

久しぶりのお休みでいつもよりは進みましたが、予想外のバグで思ったよりも時間を取られた・・・
引き続き頑張っていきまっしょい。

それでは今回はこの辺で

(´・ω・`*)ノシ

【開発記】進捗報告(5月:3回目)

進捗報告

とりあえず前回記載していた箇所の修正を行っていました。

回復と

f:id:ArtAwA:20200517220753g:plain

範囲攻撃は

f:id:ArtAwA:20200517220823g:plain

こんな感じで修正完了!
編成に関しては以前作った仮レイアウトでとりあえず見た目の部分だけ対応。
実際の編成の処理はこれから修正。

f:id:ArtAwA:20200517221003g:plain

どこがタップできるか分かりづらかったので、選択されている箇所は黄色、選択可能な箇所は青の板を表示するように。
後で選択中の表示とかは演出とか入れましょ。

今後の予定

引き続き編成で次は実際の編成処理の部分をやりましょ。
終わったら編成画面をちゃんとデザイン含めてやるか、他の画面に行くかは検討中...

・編成画面の修正

おわりに

来週からいよいよGWの振休が取れそうなので、この機会にがっつりと進めましょ。

それでは今回はこの辺で
(´・ω・`*)ノシ