【Unity2d】マップを構築しよう

Unity2D

Unity2D ARPG

こんにちは。なおキーヌです。

ブログ毎日更新は357日目になります。

前回原点やらオブジェクトのヒエラルキー構成やらを整理しました。

今回は実際にマップを作ってスクロール機能を実装してしまいましょう。

基本的にエリア切り替えイベントを踏むとスクロールするようにします。

GUIについての補足

前回カメラの子オブジェクトとしてGUIを設置してみましたが、
今確認したらゲーム画面では表示されていませんでした。

どうやらカメラに追従させる設定をしなければならないようです。

なので子オブジェクトにするのはやめて、新たなCanvasをルートに作成します。

その名前をHUDとしましょう。

そしてそのCanvasプロパティでRenderModeを「Screen Space Camera」に設定します。

そしてRenderCameraの項目に実際のカメラオブジェクトをD&Dして指定しましょう。

次にOrderinLayerを0にしましょう。

Unity2D Canvas

すると良い感じに最前面に来てくれます。

それではマップを作りましょう。

マップを作ろう

まずギミックやオブジェクトを抜きにエリアだけ作ります。

マップは以前にも紹介したこのマップの構成で通路を設けましょう。

念のためもう一度張っておきます。

Unity2D マップ

それではこれを元に組んでいましょう。

とりあえずこんな感じになりました。

Unity2D エリア

壁は上下左右2チップ分の幅を取りました。

そしてそれぞれ16チップ分重ねています。

容量を極限まで減らしたい人はもっと工夫して設置してもいいかもですね。

エリアごとに親オブジェクトを設けてるので、あとから配置を変えたいときとか

次は通路を作っていきましょう。

全体マップ通路作成

Unity2D エリア

思った以上に面倒くさかった……

これはグリッドスナップとかちゃんと設定して移動させればまだましだったんですが、
それをしてなかったので数値で直接弄ってたため時間がかかってしまいました。

しかしUnityのエディタは便利ですね。

数値入力のところで計算式を与えて結果を適用できるので1ブロック分動かしたいとか3ブロック分動かしたいとかなったら、
元の数字+ブロックサイズx個数みたいなかんじにすれば計算してくれます。

地面を敷く

このままでは真っ暗なので面白みがないですね。

ファミコンでもこういう表現はありましたが、容量がカツカツなわけでもないので
ちゃんと地面のマップチップを敷いていきましょう。

Unity2D 地面

良い感じにダンジョンぽくなってきましたね。

この時点で歩いてみたいですがまだスクロール処理を作っていないので画面が固定です。

なのでカメラをエリアNに動かし、一旦カメラをプレイヤーの子オブジェクトにすると
プレイヤーが移動したらカメラも一緒に動いてくれるんのでマップを歩けるようになります。

Unity2D テスト歩行

速度が遅いので240ぐらいにしたらちょっと早かったです(笑)

本編はカメラ固定のスクロール形式にするつもりですが、このように追尾して隣の部屋をチラ見出来たら
謎解きのヒントだったりマップにないエリアが存在しているというものになって面白いかもしれません。

それでは