51 lines
1.5 KiB
C#
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}";
|
|
}
|
|
} |