楽しく学ぶUnity 2D超入門講座(8/9)

教則本

Chapter9.4 広いマップを作る

カメラ範囲外にも床などを作成しマップを広くしていきます。

  • カメラをプレイヤーに追尾させる。
  • プレイヤーがくっつかない壁を作る
  • プレイヤーがすり抜ける床を作る

横スクロール・アクションゲームには必須のスキルを学んでいきます。

マップを広げても、表示されるのはカメラの範囲のみ

プレイヤーの動きに合わせてカメラを動かす(追尾)ようにスクリプトを記述します。

カメラがプレイヤーに追尾しているため、ジャンプすると画面も上下に移動します。

サンプルではスクリプトでカメラ制御していますが、
このカメラ挙動で良いのならば、わざわざスクリプトを書くこともなく、
メインカメラをプレイヤーの「」にするだけで追従は可能なので、とても楽なのです。
オブジェクトである「Main Camera」をプレイヤーオブジェクトにドラッグするだけの作業で済みます。

水平方向のみのカメラ追従にしたい場合は、カメラ制御のスクリプトを書いて、プレイヤーオブジェクトにアタッチする必要があります。
本書では「Position(位置)」を常に取得するコードを4行くらいで記述しています。

ここではオマケ要素として、くっつかない壁とすり抜ける床の解説がありました。

壁を作っても「摩擦」があるために落下しなくなります。
摩擦設定をツルツルにすると、壁に衝突後に落下するようになります。

上にはすり抜けるけど、下には落ちない床
スクリプトは使わずに、エディターのインスペクターで設定できるので、これもかなり楽な仕様になってます。

Box Collider 2D」の「Used By Effect」にチェックを入れるだけ!

PlatfromEffect2D」というコンポーネントで「半円形」のエフェクトが追加されます。
これを操作してすり抜ける範囲なども設定可能となっていて便利なのです。

しかしこのままだとジャンプの挙動がおかしく、
ジャンプキーを押しっぱなしだと、すり抜けた瞬間また勢いよく飛んで行く挙動になっていました。
こういうところはスクリプトで修正していく必要がありそうです。

カメラ追従、床や壁の基本

横スクロール・アクションゲーム制作で知りたい項目を学べました。
こだわらないカメラ追従、すり抜ける床などは、ワンタッチで実装可能なことに驚きました。
アクションゲームはさすがに作り易そうです。

コメント