【Unity5】ひよこを動かそう!Animation, Circle Collider 2D, Rigidbody2D【フラッピーバード風2】
Unity5.0.0f4 Personal(2015年5月)
前回の続きです〜
今回は、画面をクリックした時、プレイヤーであるピヨを上に動かす機能を追加したいと思います〜
【目標】ひよこに動きを追加する!
【課題1】アニメーションをつける
アニメーションの作成方法については下のエッセンスにて詳しく書いてありますので、ご参照下さい〜
それでは、Hierarchyビューのplayer_0を選択したまま、Window>Animationをクリックしアニメーションの設定に入ります〜
アニメーションをあとから付ける場合は、再生ボタンの下をクリックするとCreate New Clipと出てきますので、ここから新規animationファイルを作成します〜
適当な名前でSave
今回はSpriteアニメーションのみを設定します〜
Add Property>Sprite Renderer>Spriteのプラスボタン
1秒間に1回羽ばたく設定
羽ばたくひよこのアニメーション完成
【課題2】画面をクリックした時、上へ飛ぶようにする
続いて画面をクリックした時にひよこが飛ぶようにしましょう〜まずは、player_0のInspectorビューからAdd Component>Physics2D>Rigidbody2DとCircle Collider2Dを付けましょう〜
player_0設定
Sprite画像同士の重力や衝突判定をする時、各コンポーネントの後ろに「2D」と付いているものを使いましょう〜
2Dと3Dは互いに鑑賞し合いません〜、例えばBox ColliderとBox Collider2Dは衝突判定を行わないので、注意が必要です〜
ついでにgroundオブジェクトにもBox Collider 2Dを付けておきましょう〜
続いてひよこがジャンプするplayerScriptというスクリプトを作成し、ひよこに設定しましょう〜以下ソースです〜
Startメソッドでrb2Dという変数に、「GetComponent<Rigidbody2D>()」という処理を格納しています〜この変数を使うことにより、playerScript内でRigidbody2Dを使いたい度に、何度も何度もGetComponentを行う必要がなくなります〜
Updateメソッドにて、画面をマウスがクリックした時Jumpメソッドを実行するという処理が書かれています〜
Updateメソッド内で全ての処理を書いてしまうと冗長になってしまい、分かりにくいソースになりがちです〜ですので、機能ごとにメソッドを呼び出していく方針で進めていきます〜
JumpメソッドではRigidbody2Dのvelocityという処理が行われています〜
velocityは速度を表す言葉で、Vector2の情報分の速度でオブジェクトを移動させることができます〜
Vector2のXにはrb2D.velocity.xと指定しています〜これは今のX軸方向の速度を表しているので、特に力を加えないということです〜
XにはjumpForceという変数が指定されており、jumpForceは上のほうで10.0fと指定されていますので、Y軸方向へ10の速度を加えているということです〜
これで画面をクリックすると、ひよこがジャンプするようになりました〜
ジャンプするひよこ
ちょっとふんわりしすぎているので、ひよこに対する重力を変更したいと思います〜player_0のInspectorビューのRigidbody2Dにある、Gravity Scaleを1から3に変更しましょう〜
ひよこへの重力3倍
かなりいい感じでジャンプするようになりました〜
今回はここまでです〜
ありがとうございました〜
【Unity開発5】プレイヤーピヨを動かしたい!【フラッピーバード風:2】
【Unity開発5】前方に障害物を作り、くぐり抜けたい!【フラッピーバード風3】
【Unity開発5】ゲームにスコア機能を付けたい!【フラッピーバード風4】
【Unity開発5】タイトルとゲームオーバーを作りたい!【フラッピーバード風5】