(20)プレーヤーのHPを回復させるアイテムの作成

・ここでは「回復アイテムを取得すると自分で決めた分だけHPが回復する」という仕組みを作ります。

1)HP回復アイテムのオブジェクトの作成

・まずは、回復アイテムの「オブジェクト」を作成しましょう。

・自分の好きなもので構いません。

・名前は「CureItem」にしておきましょう。

スクリーンショット 2016-05-24 0.38.30

2)スクリプトの作成

「TankHealth」スクリプトにコードを追加しましょう。

「プレーヤーのHPを増加させるメソッド」を自分で考えて書いてみてください。

(ヒント)「テキスト(11)砲弾数が回復するアイテムの作成」

*テキスト(11)の中に「★<追加>砲弾数を増加させるメソッド」のコードがあります。そのコードを参考にして自分で考えてみましょう。


・上記ができたら「新たにC#スクリプトを1つ作成」してください。

・名前は「CureItem」にしておきます。

・その中に下記内容のコードを書きましょう。

*「もしも、”Player”という名前のタグを持っているオブジェクトとぶつかったら、

①プレーヤーのHPを増加させるメソッドを呼び出す。

②回復アイテムを破壊(削除)する。」 

using UnityEngine;
using System.Collections;

public class CureItem : MonoBehaviour {

	// 「Tank」オブジェクトの情報を入れるための箱を作る。
	private GameObject tank;

	// 回復数の情報を入れるための箱を作る。
	public int reward;

	public AudioClip cureItemGet;
	public GameObject getEffect;


	void OnTriggerEnter(Collider other){

		if(other.CompareTag("Player")){

			AudioSource.PlayClipAtPoint(cureItemGet, transform.position);

			GameObject effect = Instantiate(getEffect, transform.position, Quaternion.identity) as GameObject;

			Destroy(effect, 1);

			// 箱の中に「Tank」オブジェクトの情報を入れる
			tank = GameObject.Find("Tank");

			// Tankオブジェクトについている「Tank Health」スクリプトの情報を「th」という名前の箱の中に入れる
			TankHealth th = tank.GetComponent<TankHealth>();

			// 「TankHealth」クラスの中にある「AddHP()」メソッドを呼び出す。
			th.AddHP(reward);

			// アイテムを画面から削除する
			Destroy(gameObject);
		}
	}
}

・コードが書けたらいつもようにチェック。

・チェックが完了したら「CureItem」スクリプトを「CureItem」オブジェクトにドラッグ&ドロップしましょう。

「Reward」には自分の好きな数字を入れましょう。(ここに入れた数字がHPの回復数になります。)

「Cure Item Get」には好きな「効果音」を、「Get Effect」には好きな「エフェクト」を設定しましょう。

スクリーンショット 2016-05-24 0.25.08

ここまでできたら「再生ボタン」を押してみましょう。

・回復アイテムをゲットしたとき、音とエフェクトが出て、かつプレーヤーのHPが増えたら成功です。