『Unityでシューティングゲーム開発』砲弾の残弾数を画面に表示する

1)「canvas」を使って準備する。

・まず、画面の中にCanvasを設置しましょう。これが土台になります。

スクリーンショット 2016-06-10 22.48.40

次に「Canvasの上で右クリック」→「UIを選択」→「Textを選択してクリック」

スクリーンショット 2016-06-10 22.53.19

「Text」の名前を「ShellLabel」に変更

スクリーンショット 2016-06-10 22.53.34

表示する「文字」の「大きさ等」は自由に決めてください。

スクリーンショット 2016-06-10 22.59.41

今回は画面の「左上」に「残弾数」が表示されるようにします。

スクリーンショット 2016-06-10 23.02.32

(テクニック)

*テキストラベルの位置を決める場合のポイント

テキストラベルを「左上に設置」する場合には、下記ボタンを選択して、「左上が基準点」になるようにします。

スクリーンショット 2016-02-26 16.31.00

2)コードを追加する。

・canvasの準備ができたら次はコードを追加しましょう。

今回は「ShotShell」スクリプトにコードを追加します。

下記★追加(4箇所)のコードを記載しましょう。

using UnityEngine;
using System.Collections;
// ★追加
using UnityEngine.UI;

public class ShotShell : MonoBehaviour {

	public GameObject shellPrefab;
	public float shotSpeed;
	public AudioClip shotSound;
	public int shotCount;

	// ★追加
	public Text shellLabel;

	void Start(){

		// ★追加
		shellLabel.text = "砲弾:" + shotCount;
	}

	void Update () {

		if(Input.GetButtonDown("Fire1")){

			if(shotCount < 1)
				return;
			
			Shot();

			AudioSource.PlayClipAtPoint(shotSound, transform.position);

			shotCount -= 1;

			// ★追加
			shellLabel.text = "砲弾:" + shotCount;
		}
	
	}

	public void Shot(){

		GameObject shell = Instantiate(shellPrefab, transform.position, Quaternion.identity) as GameObject;

		Rigidbody shellRigidbody = shell.GetComponent<Rigidbody>();

		shellRigidbody.AddForce(transform.forward * shotSpeed);

		Destroy(shell, 2.0f);
	}
}

・コードの記載ができたらいつものようにチェック。

・「Hierarchy」にある「ShotShell」オブジェクトをクリックして選択。

・「Inspector」の中の「Shell Label」「ShellLabel」テキストをドラッグ&ドロップする。

スクリーンショット 2016-06-10 23.15.58

これで準備ができました。

再生ボタンを押して砲弾を発射してみましょう。

発射するたびに「弾数」の表示が減っていけば成功です。

 


(サイト紹介)

『CodeGenius | Unity初心者のための学習サイト』