Projext/Assets/5.TestScript/Player Stat UI.cs
2026-01-30 12:24:13 +09:00

51 lines
1.5 KiB
C#

using UnityEngine;
using TMPro; // TextMeshPro를 위해 필수
public class PlayerStatsUI : MonoBehaviour
{
[Header("--- 데이터 연결 ---")]
[SerializeField] private Stats playerStats;
[Header("--- UI 오브젝트 ---")]
[SerializeField] private GameObject statWindowPanel; // C키로 껐다 켤 부모 판넬
[Header("--- 텍스트 UI ---")]
[SerializeField] private TextMeshProUGUI maxHealthText;
[SerializeField] private TextMeshProUGUI strengthText;
[SerializeField] private TextMeshProUGUI damageText;
[SerializeField] private TextMeshProUGUI speedText;
private void Start()
{
// 시작할 때는 창을 닫아둡니다.
if (statWindowPanel != null)
statWindowPanel.SetActive(false);
}
// 창을 열거나 닫는 함수
public void ToggleWindow()
{
if (statWindowPanel == null) return;
bool isActive = !statWindowPanel.activeSelf;
statWindowPanel.SetActive(isActive);
// 창이 켜질 때만 최신 정보로 글자를 갱신합니다.
if (isActive)
{
UpdateStatTexts();
}
}
private void UpdateStatTexts()
{
if (playerStats == null) return;
// Stats.cs의 실제 로직용 프로퍼티에서 데이터를 가져옵니다.
maxHealthText.text = $"MaxHP: {playerStats.MaxHealth}";
strengthText.text = $"Strength: {playerStats.Strength}";
damageText.text = $"Damage: {playerStats.BaseAttackDamage}";
// 스피드는 소수점 한 자리까지 깔끔하게 표시
speedText.text = $"Speed: {playerStats.CurrentMoveSpeed:F1}";
}
}