クラフトゲーム開発(実装を見直して修正する)
ここまでの実装や動作が微妙なっているのでリファクタリングします。この場合のリファクタリングとは「実装を見直して修正するね」くらいの意味です。
実装を見直して修正する
建物が Tilemap で表示されるようにする
焚き火を建物として Unity の Tilemap の機能で配置するのと同様に、他の建築物であるチェストも Tilemap で扱われるようにしました。
↓チェスト(と焚き火)を Tilemap 経由で描画したところ
簡単に実装できたように書いてますが、実際は今までの描画はそもそも Tilemap 経由じゃなかったり、描画サイズが小さすぎたりとかだったのを修正した結果です。
動作するようになったのでよいです。
カーソル位置とタイルとの位置がずれているのを修正する
↓建築時にカーソル位置と離れた場所にある焚き火
開発中はいろんな不具合を見なかったことにするのですが、さすがに違和感が大きくて操作しづらいので修正しました。まぁ、カーソル位置の計算で Mathf.FloorToInt() を使っていたのを Mathf.RoundToInt() にしただけです。
よいです。
パネルがキー操作で閉じないのを修正する
現状ではクラフトパネルを開いて ESC キーを押すと Pause メニューが表示されます。
しかも、Pause 画面を ESC キーを押して閉じると以降はクラフトパネルが開かないので修正していきます。
で、見直したら私が実装したコードの「今はクラフトの処理中」とかを管理する状態遷移まわりがおかしかったので適切に動作するようになりました。
ただ、いつの間にかインベントリを B キーで開いて ESC キーで閉じようとすると Pause メニューが表示される(1回目だけ)という問題が起きるようになりました。
これは、見なかったことにします。
まとめと今後の予定
振り返るとリファクタリングというか未実装の箇所の修正になってしまいましたが、操作性を改善できたので大変よいです。
次回からは改めて「かまどに木材を入れて炭にして取り出す作業をワーカーが行う」に着手していきます。がんばります。