ぬるーむ

Unity初心者が誰もが知っているゲームの模倣をしています。個人的な備忘録ですが、入門書を読み終えたばかりの初心者の方は「こんなへなちょこでもいいのか!」「俺の方がうまく作れる」と作成意欲がわいたりするかもしれません。

Unityによるパックマンの作り方 ~迷路の作成~


スポンサードリンク

Mazeオブジェクトの作成

迷路の画像を用意しスプライトを作成します。

f:id:Nullsuke:20210501223846p:plain
迷路の画像

Pixel Per Unitを8、Pivotを左下にします(左下を原点にしておくと今後わかりやすいので)。

f:id:Nullsuke:20210502081128p:plain
迷路の画像の設定

Mazeクラスを作成し、アタッチします。この時点で、クラスは空でかまいません。

f:id:Nullsuke:20210505102811p:plain
Mazeゲームオブジェクト

BoxCollider2Dをアタッチ

迷路の壁部分にそれぞれBoxCollider2Dを0.25単位でアタッチします(0.25刻みでないとパックマンが移動中に引っかかってしまう)。

f:id:Nullsuke:20210502085754g:plain
手作業でBoxCollider2Dをアタッチ
f:id:Nullsuke:20210502091949p:plain
BoxCollider2Dの位置、サイズ
f:id:Nullsuke:20210502092114p:plain
BoxCollider2D

手動でも十分可能ですが、半自動でアタッチすることもできます(といっても下準備に手間がかかるのですけどね)。

nullsuke.com

ワープ地点の作成

IWarpableインターフェイスを作成し、ワープさせたいキャラ(パックマン、ゴースト)に継承させます。

ワープ用のクラスWarpPointを作成します。これにワープの出口の座標を保持させ、IWarpable.Warpメソッドを使いワープの出口に瞬間移動させます。

空のGameObjectを2つ作成し、それぞれにBoxCollider2D、WarpPointをアタッチします。ワープの出口の座標は出た直後に、出口のワープポイントとキャラが接触しないよう少し離れた位置にしましょう。これらを迷路のワープの入り口にセットします。

f:id:Nullsuke:20210502120539p:plain
WarpPoint位置
f:id:Nullsuke:20210502130935p:plainf:id:Nullsuke:20210502133033p:plain
ワープポイントの設定