(今回はこんなことを学びます)
・ボタンを押すとジャンプする機能の作成
・ボタンを変更する方法
(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」を押すとジャンプします。
自分の好きなボタンに変更してみましょう。










