今度は、敵の攻撃を回避する「ブースト機能」をプレーヤーにつけてみます。
自分が設定したボタンを押すと、一瞬だけ加速(ダッシュ)するようになります。
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」を設定
2)Inputボタンの設定変更(復習)
・再生ボタンを押してキーボードの「B」ボタンを押してみましょう。
・押した瞬間加速すれば成功です。
(うまくブーストしない人はここを確認!)
コードに記載した「”Boost”」の文字と、Nameの「Boost」の文字が大文字・小文字も含めて全て一致しているか確認してみましょう。
3)ブースト残り回数の表示(復習)
・こちらを参考に作成してみましょう!
↓
★(19)プレーヤーにHPをつけて画面に表示する