はじめに
ユニティを使用して今制作しているゲームにHPバーを追加してみました。
結構簡単に実装することができましたので作成方法を紹介します。
緑のバーがHPでダメージを受けると赤くなります。
HPバーの設置方法
sliderのScaleを変更することでバー自体のサイズを変更することができます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_131518.png)
スライダーを設置すると子オブジェクトにHandle Slide Areaというものがついてきます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_002157.png)
これはバーをスライドさせるときに使うつまみです。
HPバーでは使用しないので消去してしまいましょう。
sliderのvalueというところをいじるとバーの中身を変更することができます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_002917.png)
WholeNumbersにチェックを入れると整数での変更になります。
このままだとvalueを最大まで動かしても先ほど消去したHandle Slide Area分のスペースがあいてしまいます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_003724.png)
FillAreaのLeftRightとFillのLeftRightをすべて0にすることで余分なスペースを埋めることができます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_004208.png)
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_004235.png)
スライダーの設定は以上です。
色の変更方法
BackGroundとFillのColorから色を変更することができます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_131855.png)
BackGroundを赤Fillを緑にするとこんな感じになりました。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_132123.png)
SorceimageをNoneに変更すると現在の角が丸くなっているバーから四角のバーに変更できます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_132626.png)
スクリプト
こんな感じのスクリプトを操作するオブジェクト(プレイヤー)にはりつけてみました。
敵などにぶつかってダメージを受けたときにHPが減りUIが更新されます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//UIを使うときに書きます。
public class Player : MonoBehaviour
{
//最大HPと現在のHP。
int maxHp = 10;
int Hp;
//Slider
public Slider slider;
void Start()
{
//Sliderを最大にする。
slider.value = 10;
//HPを最大HPと同じ値に。
Hp = maxHp;
}
private void OnTriggerEnter(Collider collider)
{
//Enemyタグを設定しているオブジェクトに接触したとき
if (collider.gameObject.tag == "Enemy")
{
//HPから1を引く
Hp = Hp - 1;
//HPをSliderに反映。
slider.value = (float)Hp;
}
}
}
スクリプトを貼り付けたオブジェクトのinspector画面からsliderをセットできます。
![Unityエディタでの説明](https://cbagames.jp/wp-content/uploads/2022/09/2022-09-06_134351.png)
これでEnemyタグを設定しているオブジェクトが、スクリプトを貼り付けたオブジェクトに衝突すると、HPバーが減るようになります。
これでシンプルなHPバーの完成です。
アセットを使用したりしてデザインを変更してみるのもおすすめです!