Unityちゃん(2D)のジャンプ及びアニメーションをスクリプトで制御する

アニメーションの準備が出来たので、Unityちゃんの動きをスクリプトを書いて制御します。

まずは、事前準備として物理挙動と衝突判定の設定から始めます。

スポンサーリンク

Unityちゃんの動きをスクリプトで制御する【2D】

Rigidbody2Dの設定

Unityちゃんを選択しAdd Componentから「Rigidbody 2D」をアタッチします。

Constraintsメニューを開いてFreeze Rotationの「Z」にチェックをいれます。これにより物理演算による回転を防ぎます。

Capsule Collider 2Dの設定

続いてコライダの設定です。数ある種類の中から「Capsule Collider 2D」を選択してみました。

Unityちゃんにカプセルコライダをアタッチ カプセルコライダの設定

オフセット等の設定はご覧の通りです。

コライダがキャラクターを覆うようにします。あまり範囲を広げ過ぎると頻繁に衝突判定が起きるので小さめに設定した方が良いと思います。

プレイヤースクリプトの作成

それでは、Unityちゃんがジャンプ及びアニメーションのステートをチェンジさせるプレイヤースクリプトを作ります。

新規スクリプトを作成し名前を「UnitychanController」とします。

クリックするたびにジャンプし続けるので、一定値までジャンプしたらクリックしてもジャンプを無効にするようにします。「Height」がその値ですね。

高さとジャンプ力はpublicにして後から設定するようにします。

アニメーションのステートチェンジは、Unityちゃんが地面に着地しているかどうかで切り替えるようにしています。私の場合はポジションYが「-2」付近で着地しているのでこの値となっています。

ですから、各自でプレイヤーの位置を確認して指定するようにしてください。

スクリプトを保存したらUnityちゃんにアタッチして、高さとジャンプ力に色々な値を入力しつつ動作を確認しましょう。

クリックでUnityちゃんがジャンプする様子

Unityちゃんの落下スピードを変えたい場合は、Rigidbody 2dコンポーネントの「Gravity Scale」を大きくすると落下するスピードがアップします。