[14]ジャンプできるようにしよう

(今回はこんなことを学びます)

・ボタンを押すとジャンプする機能の作成

・ボタンを変更する方法

(1)スクリプトを作成する

今回は、前回までに作成した「Ball」スクリプトにコードを追加します。

・「Ball」スクリプトをダブルクリックしてください。

・そこに下記のコードを追加しましょう。

using UnityEngine;
using System.Collections;

public class Ball : MonoBehaviour {


	public float move_speed;
	private Rigidbody rb;
	public AudioClip coinGet;

	// ★①この2行を追加(変数の定義)
	public float jump_speed;
	private bool isJumping = false;


	// Use this for initialization
	void Start () {

		rb = GetComponent<Rigidbody>();

	}

	// Update is called once per frame
	void Update () {

		float moveHorizontal = Input.GetAxis("Horizontal");
		float moveVertical = Input.GetAxis("Vertical");

		Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
		rb.AddForce(movement * move_speed);

		// ★②このコードを追加する
		if(Input.GetButtonDown("Jump") && isJumping == false){
			rb.velocity = Vector3.up * jump_speed;
			isJumping = true;
		}
		// ここまで

	}

	// ★③このメソッド(命令ブロック)を追加
	void OnCollisionEnter(Collision col){
		if(col.gameObject.CompareTag("Floor")){
			isJumping = false;
		}
	}


	void OnTriggerEnter(Collider other){

		if(other.CompareTag("Coin")){
			Destroy(other.gameObject);

			AudioSource.PlayClipAtPoint(coinGet, transform.position);
		}
	}
}

(ここがポイント!)

「jump_speed」「public」で定義していますので、あとで「Inspector」上で数値を変更することができます。

「bool」「真偽型」と呼ばれ、「真=true」「偽=false」か?の2値を扱います。

『「bool isJumping」とはジャンプしているか?』という意味です。

「false」「偽(いいえ)」となります。

「&&」「かつ」という意味です。

「if(A && B){   }」は、「AかつB」、つまり、「もしもAとBの両方の条件が揃った時・・・」という意味です。

・今回の場合は、「もしもJumpボタンが押され、かつ、Ballがジャンプしていない時は(ジャンプする)」となります。

・こうすることによって、空中にいる時(「is jumping = true」)にはジャンプはできなくなります(二段ジャンプの禁止)。

(2)Tagの設定

・コードを追加したらセーブしましょう。

・「Hierarchy」で「Ball」オブジェクトを選択

・「Inspector」で「jump_speed」の数値を変更しましょう。

スクリーンショット 2015-10-17 4.11.19

次は、「Floor」にTag(タグ)を設定します。

・「Inspector」の「Tag Untagged」をクリック

スクリーンショット 2015-10-17 4.13.58

・「Add Tag…」をクリック

スクリーンショット 2015-10-17 4.14.09

・「+」をクリック

スクリーンショット 2015-10-17 4.14.18

・「Floor」を記入してエンター

スクリーンショット 2015-10-17 4.14.30

・これで「Floor」という名前のTagが登録されました。

・もう一度「Hierarchy」で「Floor」オブジェクトを選択

・「Inspector」で「Tag Untagged」をクリック

・「Floor」を選択してクリック

これでタグの設定が完了しました。

スクリーンショット 2015-10-17 4.21.09

スクリーンショット 2015-10-17 4.21.17

・「再生ボタン」を押してみましょう。

「スペースキー」を押すとジャンプする。空中ではジャンプできない。着地するとまたジャンプする。

これらができると成功です。

(3)ボタンを変更してみよう

今回は「スペースキー(space)」ボタンを押すとジャンプしました。

これを別のボタンに変更する方法を紹介します。

「Edit」をクリック

「Project Settings」を選択

「Input」を選択してクリック

スクリーンショット 2015-10-17 4.35.17

「Axes」をクリック

スクリーンショット 2015-10-17 4.35.27

「▶︎Jumo」をクリック

「Positive Button」の中が「space」となっていることを確認

スクリーンショット 2015-10-17 4.35.41

・「space」を「q」に変更(*小文字にしないとエラーになります)

スクリーンショット 2015-10-17 4.45.29

・「再生ボタン」を押してみましょう。今度は、「スペースキー」を押してもジャンプしません。「Q」を押すとジャンプします。

自分の好きなボタンに変更してみましょう。