(今回はこんなことを学びます)
・ボタンを押すとジャンプする機能の作成
・ボタンを変更する方法
(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」の数値を変更しましょう。
次は、「Floor」にTag(タグ)を設定します。
・「Inspector」の「Tag Untagged」をクリック
・「Add Tag…」をクリック
・「+」をクリック
・「Floor」を記入してエンター
・これで「Floor」という名前のTagが登録されました。
・もう一度「Hierarchy」で「Floor」オブジェクトを選択
・「Inspector」で「Tag Untagged」をクリック
・「Floor」を選択してクリック
これでタグの設定が完了しました。
・「再生ボタン」を押してみましょう。
・「スペースキー」を押すとジャンプする。空中ではジャンプできない。着地するとまたジャンプする。
これらができると成功です。
(3)ボタンを変更してみよう
今回は「スペースキー(space)」ボタンを押すとジャンプしました。
これを別のボタンに変更する方法を紹介します。
・「Edit」をクリック
・「Project Settings」を選択
・「Input」を選択してクリック
・「Axes」をクリック
・「▶︎Jumo」をクリック
・「Positive Button」の中が「space」となっていることを確認
・「space」を「q」に変更(*小文字にしないとエラーになります)
・「再生ボタン」を押してみましょう。今度は、「スペースキー」を押してもジャンプしません。「Q」を押すとジャンプします。
自分の好きなボタンに変更してみましょう。