アイテムを数え、スコアを表示する

確認済のバージョン: 5.2

-

難易度: 初級

ここでは、プレイヤーが収集したアイテムを数え、すべてのアイテムを集めたら「勝ちました!」というメッセージを表示します。

アイテムを数え、スコアを表示する

初級 2D UFO

Code snippet

using UnityEngine;
using System.Collections;

//これを加えると、Text を含む UI 名前空間のメンバーにアクセスできるようになります。 
using UnityEngine.UI;

public class CompletePlayerController : MonoBehaviour {

    public float speed;             //プレイヤーの移動スピードを格納する Float 変数
    public Text countText;          //収集したアイテムの数を表示する UI Text コンポーネントへの参照を格納します。
    public Text winText;            //「勝ちました!」メッセージを表示する UI Text コンポーネントへの参照を格納します。

    private Rigidbody2D rb2d;       //2D Physics に必要な Rigidbody2D コンポーネントへの参照を格納します
    private int count;              //集めたアイテムの数を格納する Int

    // イニシャライゼーションにこれを使います
    void Start()
    {
        //Rigidbody2D コンポーネントへの参照を取得、格納して、 Rigidbody2D コンポーネントへアクセスできるようにします。
        rb2d = GetComponent<Rigidbody2D> ();

        //合計を 0 に イニシャライズします。
        count = 0;

        //開始時にはまだ、勝っていないので、winText を空の文字列にイニシャライズします。
        winText.text = "";

        //現在の合計数のテキストを更新するSetCountText 関数を呼び出します。
        SetCountText ();
    }

    //FixedUpdate は決められた間隔で呼び出され、フレームレートとは関係ありません。物理演算のコードをここに置きます。
    void FixedUpdate()
    {
        //現在の水平入力を float moveHorizontal に格納します。
        float moveHorizontal = Input.GetAxis ("Horizontal");

        //現在の垂直入力を float moveVertical に格納します。
        float moveVertical = Input.GetAxis ("Vertical");

        //2 つの格納 floats を使って新しい Vector2 変数の動きを作成します。
        Vector2 movement = new Vector2 (moveHorizontal, moveVertical);

        // movement に speed を乗じたものを伴う Rigidbody2D rb2d の AddForce 関数を呼び出します。
        rb2d.AddForce (movement * speed);
    }

    //このオブジェクトがトリガーコライダーと重なるときは常に OnTriggerEnter2D を呼び出します。
    void OnTriggerEnter2D(Collider2D other) 
    {
        //与えられた Collider2D パラメーター "other" が "PickUp" とタグされていないか確認し、そうであれば...
        if (other.gameObject.CompareTag("PickUp"))
        
        //... それから、ついさっき衝突した "other" オブジェクトを非アクティブに設定します。
        other.gameObject.SetActive(false);

        //現在の変数の値に 1 を加えます。
        count = count + 1;

        // SetCountText 関数を呼び出して、現在表示された数を更新します。
        SetCountText ();
    }

    //この関数は、収集したオブジェクトの数をテキスト表示を更新し、すべてのアイテムを収集したら、勝利メッセージを表示します。
    void SetCountText()
    {
        // countText オブジェクトの text プロパティーを "Count: " と、そのあとに count 変数に格納された数が続くように設定します。
        countText.text = "Count: " + count.ToString ();

        //12 アイテムすべて集めたかをチェックします。もしそうなら...  
        if (count >= 12)
            //...  winText オブジェクトの text プロパティーを  "You win!" に設定します。
            winText.text = "You win!";
    }
}

関連するチュートリアル