(21)プレーヤーに「ブースト機能」を付ける

今度は、敵の攻撃を回避する「ブースト機能」をプレーヤーにつけてみます。

自分が設定したボタンを押すと、一瞬だけ加速(ダッシュ)するようになります。

1)スクリプトの作成

「TankMovement」スクリプトをダブルクリック

・この中に下記のコードを追加してください。(★<追加>の部分)

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

public class TankMovement : MonoBehaviour {

	// ★<追加>
	private int boostCount = 5;
	public Text boostLabel;
	public float boostSpeed;


	public float moveSpeed;
	public float turnSpeed;
	private Rigidbody rb;
	private float movementInputValue;
	private float turnInputValue;


	// 一番最初に呼ばれるメソッド
	void Awake(){
		rb = GetComponent<Rigidbody>();

	}

	void Start(){

		// ★<追加>
		boostLabel.text = "Boost: " + boostCount;
	}

	void Update () {

		movementInputValue = Input.GetAxis("Vertical");
		turnInputValue = Input.GetAxis("Horizontal");

		// ★<追加>
		if(Input.GetButtonDown("Boost")){

			if(boostCount <= 0) return;

			rb.velocity = transform.forward * boostSpeed;

			boostCount -= 1;

			boostLabel.text = "Boost: " + boostCount;
		}
	}

	void FixedUpdate(){

		Move(); // Move()メソッドを呼び出す
		Turn(); // Turn()メソッドを呼び出す

	}

	// 前進・後退のメソッド
	void Move(){
		Vector3 movement = transform.forward * movementInputValue * moveSpeed * Time.deltaTime;

		rb.MovePosition(rb.position + movement);
	}

	// 旋回のメソッド
	void Turn(){
		float turn = turnInputValue * turnSpeed * Time.deltaTime;

		Quaternion turnRotation = Quaternion.Euler(0f, turn, 0f);

		rb.MoveRotation(rb.rotation * turnRotation);
	}
}

・コードの追加ができたらチェック。

・「Hierarchy」でTankをクリック→「Inspector」で「Boost Speed」を設定

スクリーンショット 2016-04-18 12.51.09

2)Inputボタンの設定変更(復習)
(3)発射ボタンを変更する方法(Project Settings)を参考に下記のように変更してください。
*今回変更するのは「Fire 2」になります。

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

・再生ボタンを押してキーボードの「B」ボタンを押してみましょう。

・押した瞬間加速すれば成功です。

(うまくブーストしない人はここを確認!)

コードに記載した「”Boost”」の文字と、Nameの「Boost」の文字が大文字・小文字も含めて全て一致しているか確認してみましょう。

3)ブースト残り回数の表示(復習)

・こちらを参考に作成してみましょう!

(19)プレーヤーにHPをつけて画面に表示する

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

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