昔ながらのゲームをUnityで作る時に困ったこと
先日、UnityRoomで勉強用に作成した倉庫番のゲームを公開しました。
元々はこちらの書籍の内容をUnityで作ってみようと思って始めたのですが、
C++で書かれていたものをUnityに置き換える際に、少し手間取ったところがありましたので、
その内容をメモがてら、ブログに書いていきたいと思います😄
詰まった点① Debug.Logが見にくい
ゲームを作るうえで必要になるのが、入力、更新、描画です。
描画部分を作る際、最も簡単なのがCLI上で表示するやり方。
例えば、ステージデータはCLIだと下記のように表示できます。
######## # .. p # # oo # # # # # ########
ところが、上の表示をUnityのDebug.Logでやろうとすると、
といった感じにスペースが上手く一文字分にならず、崩れてしまいます。
また、Updateに記載しているせいで、
変更を追っていくのが大変に💦
詰まった点② ステージデータとUnityのオブジェクトの扱い
Unityで実装する際に悩んだことの一つ、
どうやってプレイヤーとオブジェクトとそのほかの要素で分けよう?
といったことでした。
例えば、プレイヤーはステージ上を壁に囲まれた範囲で動けます。
箱を押せますし、ゴール床の上に乗ることも出来ます。
ただ、それをUnityでどう表現すればいいか迷ってしまいました。
ステージ床とプレイヤーを別の次元として扱うか?
でも、そうするとステージデータと分離が出来てしまう…
結局悩んだ結果、元の本を参考に
全ての状態を図で用意することにしました。
こんな感じに
ちょっと画像が小さいですが、
- 壁
- ゴール床
- 箱
- プレイヤー
- 箱(ゴール上)
- プレイヤー(ゴール上)
- 床
とすべての状態の図を用意しておいて、
ステージの状態と画像を紐づけることにすることで解決しました*1。
まあ、このままだとアニメーションが出来ないのですが…💦
そこは今後の課題ということにしましょう。
完成した後に困った点 コードがぐちゃぐちゃ
考えながら追加追加で作ったせいか、コードが結構ぐちゃぐちゃに感じてしまいます。
もっとスマートに作れるといいのですが、難しいですね💦
以上になります。
私の知識だと2dのマップ上のものをアニメーションさせる方法が分からないので、
次回作る時はそのあたりを解決出来たらなぁと思います*2😄
それではまた✨