HPbarzissou
This commit is contained in:
64
Assets/_Scripts/PlayerHUD.cs
Normal file
64
Assets/_Scripts/PlayerHUD.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class PlayerHUD : MonoBehaviour
|
||||
{
|
||||
[Header("HP表示設定")]
|
||||
[SerializeField] private Slider hpSlider;
|
||||
[SerializeField] private Text hpText;
|
||||
|
||||
[Header("Codingゲージ表示設定")]
|
||||
[SerializeField] private Slider gaugeSlider;
|
||||
[SerializeField] private Text gaugeText;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (PlayerStatusManager.Instance != null)
|
||||
{
|
||||
// 初期値の反映
|
||||
UpdateHpUI(PlayerStatusManager.Instance.CurrentHp, PlayerStatusManager.Instance.MaxHp);
|
||||
UpdateGaugeUI(PlayerStatusManager.Instance.CurrentGauge, PlayerStatusManager.Instance.MaxGauge);
|
||||
|
||||
// イベントの購読
|
||||
PlayerStatusManager.Instance.OnHpChanged += UpdateHpUI;
|
||||
PlayerStatusManager.Instance.OnGaugeChanged += UpdateGaugeUI;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (PlayerStatusManager.Instance != null)
|
||||
{
|
||||
PlayerStatusManager.Instance.OnHpChanged -= UpdateHpUI;
|
||||
PlayerStatusManager.Instance.OnGaugeChanged -= UpdateGaugeUI;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateHpUI(float current, float max)
|
||||
{
|
||||
if (hpSlider != null)
|
||||
{
|
||||
hpSlider.maxValue = max;
|
||||
hpSlider.value = current;
|
||||
}
|
||||
|
||||
if (hpText != null)
|
||||
{
|
||||
hpText.text = $"HP: {Mathf.CeilToInt(current)} / {Mathf.CeilToInt(max)}";
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateGaugeUI(float current, float max)
|
||||
{
|
||||
if (gaugeSlider != null)
|
||||
{
|
||||
gaugeSlider.maxValue = max;
|
||||
gaugeSlider.value = current;
|
||||
}
|
||||
|
||||
if (gaugeText != null)
|
||||
{
|
||||
gaugeText.text = $"GAUGE: {Mathf.FloorToInt(current)}%";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user