Unity2Dで簡単な倉庫番パズルを作る方法

forklift IT

古典的な倉庫番パズルをUnityで作ってみたいと思います。最初の実作なので簡単なことしかしておらず、初心者向けです。使っているスクリプトやコンポーネントの解説は各記事を参照していただく形です。
Unityで技術的にどうやって作るかという記事なので、パズルの作り方については特に何も解説してません(というか、解説できません)。

スポンサーリンク

成果物

sokoban12
荷物を押してゴールまで運ぶ倉庫番パズルを作ります。

倉庫番パズルの作り方

sokoban1
背景を透過させたpng画像を用意します。フォトショやクリスタで作れますし、ネットにも色々落ちてます。
sokoban2
オブジェクト化し、コライダーリジッドボディを設定します。ぴったりと升目にそって並べたいので、倍率と位置は数値で指定します。
背景画像を設定している場合は、レイヤーの順序の数字を大きくして埋もれないようにします。
sokoban3
壁を配置して、コライダーを設定します。
sokoban4
pngの場合、当たり判定が画像の有効部分を元に計算されます。コライダーのサイズの値を微調整し、
col1
壁にぶつかった時に違和感なく止まるようにします。
sokoban5
壁をプレハブ化し、たくさん用意します。壁の位置も数値で指定します。
sokoban6
荷物(樽)画像をオブジェクト化し、コライダーとリジッドボディを設定します。
sokoban7
キツネと荷物は、リジッドボディで回転を固定しておきます。
col2
これで押せば荷物が動くようになりましたが、どこまでもツルツル滑っていってしまうので、
sokoban8
リニアの抗力もちょっと高くしておきます。
sokoban9
ステージを作り、ゴールを配置し、クリアの文字をオブジェクトとして置きます。
sokoban10
荷物にアタッチします。キツネがゴールに触ってもクリアにならないようにしないと、めちゃくちゃ簡単なパズルになります。
If文の対象のオブジェクト名にも注意してください。
sokoban11
インスペクターで、変数にクリアした時表示するオブジェクトをセットします。
col3
これでほぼ完成。

音楽を付ける

music6
ゲームオブジェクト同様にpublicでAudio Sourceを宣言し(変数名はaudioSourceとしました)、
music7
ヒエラルキーからオブジェクトをドラッグしてセットすると、●●オブジェクトのAudioSourceコンポーネントという形で変数に登録できるので、
music8
クリア時はaudioSource.Stop();とするだけで、BGMを止めることができます。

ビルドして公開

やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント