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

forklift IT

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

スポンサーリンク

成果物

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

倉庫番パズルの作り方

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

音楽を付ける

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

ビルドして公開

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

コメント

モバイルバージョンを終了