アカデメイア実験室のラボノートには勉強したことのメモを書いていきます。
目標はUnity Learnで3Dを学んで面白そうな何か作ってみることです(雑)
最終的には記事にも価値が出るようなものにしたいですが、何しろ不慣れなので、当面は行動記録として「投稿すること」を優先しようと思います。
こうしたほうがいいぞ!とかあればTwitterで絡んでください。
今日の内容は3DGameを作る(C#編6)です
今回は抽象クラスを継承して、迷路の見た目をよくするクラスを書いたよ、という報告です。
お疲れ様です。
壁伸ばし法IntArray迷路は作成する場合にはよいですが、空間の半分以上が壁で埋まってしまいます。
そこで通路幅を広げて見栄えをよくしたいと考えました。
やりたいこと
迷路の壁を薄くしたい
通常は奇数の行列を細くしたりして対処しますが、今回はIntArrayToPrefabで配置するため、一定幅で実装する必要があります。
既存のリソース、つまり壁伸ばし法IntArray生成とIntArrayPrefabを用いて、壁を薄くする、という目的を実現する方法として、以下の案を思いつきました。
実装案
intArray迷路の壁の周囲接続によってprefabを分けておけば、適切に置換することで同じIntArray形状で幅を広くできそう。
つまりこれを......こうです
■■■■■ ┏━┯━┓
■□■□■ ┃ │ ┃
■□■□■ → ┃ ╵ ┃
■□□□■ ┃ ┃
■■■■■ ┗━━━┛
つまり作りたいものは以下になります。
作りたいもの
入力されたIntArray迷路の壁を周囲と外周に応じた数字に変換するプログラム
制限
前回作成した抽象クラスに従うこと
作製したのが右のコードです。
抽象クラスを継承し、周囲に壁があるかによってプレハブ番号指定を分けるプログラムができました。
これから細い壁を16個プレハブに仕立てる作業が待っています~
今日はここまで。