Unity

簡単な体力ゲージを実装した【Unity】

More than 1 year has passed since last update.

uGUIのSliderを用いた簡単な体力ゲージを実装しました。調べても作りたいものがなかなか出てこなかったので。
手順としては
1.PlayerにHPを持たせる
2.Sliderをセット、調節してゲージっぽくする
3.HPを表示するスクリプトを作る

1.PlayerにHPを持たせる

Add Componentからnew scriptを選択して作成します。名前をPlayerHPにしておきます。きちんとスクリプトが動いていることを確認するためにDebug.Logで、体力が0になったときに「死亡」、攻撃を受けたときに現在のHPを表示するようにします。今回はBulletに当たった時にダメージを受けることにします。

PlayerHP
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerHP : MonoBehaviour {


    public readonly int maxHP = 100;    //体力の最大値
    public int HP;    //体力
    public int EnemyATK = 10;  //敵の攻撃力



    void Start(){
        HP = maxHP; //初期体力を最大値にする
    }


    void Update(){
        if (HP <= 0){
            Debug.Log("死亡しました");
        }
    }

    void OnTriggerEnter(Collider hit){ 

        if (hit.CompareTag("Bullet")){

            HP -= EnemyATK; //攻撃で体力が減少
            Debug.Log(HP); //HPを表示
        }
    }
}

2. Sliderをセットする

詳細に記述したQiitaの記事があり、こちらのほうがわかりやすいので参照してください。
【uGUI】SliderでHPバーを作る
http://qiita.com/2dgames_jp/items/31435fcef08dcd04c499

SliderのInspectorでValueという項目を見ると、つまみを動かすのに合わせて変化しているのがわかります。つまり、SliderではValueの値を表示しているということなので、このValueの値を今回のHPの最大値である100に変更します。

3.HPを表示するスクリプトを作る

次に、Create Emptyで空のゲームオブジェクトを作り、HPBarControlとします。Add Component→New Scriptでスクリプトを作成します。名前はHPBarControlとしておきます。
using UnityEngine.UIを追加することを忘れないようにしてください。

HPBarControl
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class HPBarControl : MonoBehaviour {

    GameObject player;
    PlayerHP hpcomp;
    Slider hpslider;
    private int hp;

    void Start () {

        player = GameObject.Find("Player"); 
        hpcomp = player.GetComponent<PlayerHP>(); 

        hpslider = GameObject.Find("HPBar").GetComponent<Slider>();
        hp = 100; // 最大HPの値
        hpslider.value = hp; //sliderのValueの値を最大HPにする
    }


    void Update () {
        int PyHP = hpcomp.HP; //PlayerHP内の変数HPをPyHPとして使用
        hpslider.value = PyHP; //Valueの値をPyHPの値にする
    }
}

これで簡単な体力ゲージが実装できました。