スプライトの設定ができたらいよいよプレイヤーキャラクターを作っていきます。まずはプレイヤーキャラのゲームオブジェクトを作りましょう。
プレイヤーキャラ本体のゲームオブジェクトの作成
はじめにプレイヤーキャラクター本体のゲームオブジェクトを作ります。下の図のように、playerスプライトをシーンにドラッグ&ドロップしてください。すると新しいゲームオブジェクトが作成されるので、名前を「Player」に変更してください。
次に、プレイヤーキャラに必要なコンポーネントを追加していきます(コンポーネントというのはゲームオブジェクトの動作の元になるパーツのようなものだと思っておいてください)。インスペクタの下の方にある「Add Component」をクリックして、次の2つのコンポーネントを追加してください(どちらも「Physics2D」の中にあります)。
- Rigidbody2D:動く物体用の物理演算コンポーネント
- Box Collider 2D:四角い当たり判定
そうしたら、Rigidbody2Dの「Gravity Scale」を「10」にしてください。これはそのゲームオブジェクトにかかる重力の度合いで、デフォルトは「1」です。しかし、今回作るゲームではそれだともの凄い高さまでジャンプできてしまうので、落下速度を速めるために10倍します。
それから、このままだと壁に引っかかった時にプレイヤーが転がってしまうので、それを防止する設定をします。Rigidbody2Dコンポーネントの「Constraints」をクリックし、「Freeze Rotation」にチェックを入れてください。これでプレイヤーがコケないようになります。
本体の設定は以上でひとまず完了です。
接地判定のゲームオブジェクトの作成
次に、プレイヤーキャラクターのオブジェクトの子として接地判定用のゲームオブジェクトを作ります。なぜそんなものを作る必要があるのかというと、今回作るゲームでは「床に接地していたらジャンプ可能とする」という仕様なのですが、接地判定がないと壁に当たった場合も「接地した」という判定になってしまうからです。なので正しく接地判定を行うために別のオブジェクトを用意するのです。
Playerオブジェクトを右クリックしたら、「Create Empty」をクリックしてください。そうするとPlayerの子として空のゲームオブジェクトが作られますので、名前を「GroundCheck」に変更してください。
次にTransformコンポーネントの「Position」のYを下の図のように「-0.5」に設定しましょう。ゲームオブジェクトがプレイヤーの真下に移動します。ただし、空のゲームオブジェクトは目に見えなくてわかりづらいので、左上の3色の立方体のアイコンをクリックして、適当なものに変更します。こうするとシーンビュー上でもそのアイコンで表示されるので分かりやすくなります。
これでプレイヤーキャラができました。
おまけ:床オブジェクトの作成
プレイヤーは完成しましたが、このままではテストプレイしたときに落っこちてしまうので床も作っておきましょう。「floor」スプライトをシーンにドラッグ&ドロップし、スケールを適当な大きさに変更してください。あとは「Box Collider 2D」コンポーネントを追加したら床の完成です(床は動かないので、Rigidbody2Dコンポーネントは不要です)。
次のページ→アニメーションを設定する