プレイヤーのライフバー(hp)を簡単に実装【Unityゲーム制作】

Unityの2Dゲームで「プレイヤーのライフバー(HPバー)」を実装していきます。色々な方法がありますがシンプルな方法でいきます。

はじめに

Unityのバージョンは2021.3.14f1です。

下記のようなシンプルなライフバー(ヘルスバー)を実装していきます。ダメージを食らうと白部分が増えるという感じです。分かりやすいようにサイズを大きくしてありますが、実際はもっと小さいですね。

実装開始

ライフバーの見た目(UI)を作成してから簡単なスクリプトで実装していきます。

ライフバーのUI作成

まずはHierarchyで右クリックして、UI→Imageを追加。

名前をHPBarに変更してRectTransformを大体の位置になるように調整します。

HPBarをコピーして配下に移動。名前をHPBarCurrentにして、Image部のSourceImageをSpriteShapeFill、Colorを赤色にします。

HPBarCurrentのRaycasrPaddingを変更。ImageTypeをFilled、FillMethodはHorizontal、FillOriginをLeftに。

試しにFillAmountを変更して、ライフバーっぽくなればOK。

スクリプトの作成

HPBarと言う名前でスクリプトを作成します、中身は下記。

using UnityEngine;
using UnityEngine.UI;

public class HPBar : MonoBehaviour
{
    [SerializeField] private Image _hpBarcurrent;
    [SerializeField] private float _maxHealth;

    private float currentHealth;

    void Awake()
    {
        currentHealth = _maxHealth;
    }
    public void UpdateHP(float damage)
    {
        currentHealth = Mathf.Clamp(currentHealth - damage, 0, _maxHealth);
        _hpBarcurrent.fillAmount = currentHealth / _maxHealth;
    }
}

ダメージ量を渡すと、HPバーがダメージに応じて変化します。

Mathf.Clampは値の範囲制限ですね。

HPBarオブジェクトにスクリプトをアタッチして、変数をセットします。

試しにボタンクリックでダメージを食らうようにしてみます。

実行してボタンを押した時にダメージが食らえばOK。

実際は敵から攻撃された時にダメージを食らう感じかな。

タイトルとURLをコピーしました