2026-02-01 15:49:12 +00:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
using TMPro;
|
2026-01-30 03:24:13 +00:00
|
|
|
|
|
|
|
|
|
|
public class PlayerStatsUI : MonoBehaviour
|
|
|
|
|
|
{
|
2026-02-01 15:49:12 +00:00
|
|
|
|
[Header("--- 데이터 연결 ---")]
|
2026-01-30 03:24:13 +00:00
|
|
|
|
[SerializeField] private Stats playerStats;
|
|
|
|
|
|
|
2026-02-01 15:49:12 +00:00
|
|
|
|
[Header("--- UI 오브젝트 ---")]
|
|
|
|
|
|
[SerializeField] private GameObject statWindowPanel;
|
2026-01-30 03:24:13 +00:00
|
|
|
|
|
2026-02-01 15:49:12 +00:00
|
|
|
|
[Header("--- 텍스트 UI ---")]
|
2026-01-30 03:24:13 +00:00
|
|
|
|
[SerializeField] private TextMeshProUGUI maxHealthText;
|
|
|
|
|
|
[SerializeField] private TextMeshProUGUI strengthText;
|
|
|
|
|
|
[SerializeField] private TextMeshProUGUI damageText;
|
|
|
|
|
|
[SerializeField] private TextMeshProUGUI speedText;
|
|
|
|
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
|
|
{
|
2026-02-01 15:49:12 +00:00
|
|
|
|
if (statWindowPanel != null) statWindowPanel.SetActive(false);
|
2026-01-30 03:24:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void ToggleWindow()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (statWindowPanel == null) return;
|
|
|
|
|
|
bool isActive = !statWindowPanel.activeSelf;
|
|
|
|
|
|
statWindowPanel.SetActive(isActive);
|
2026-02-01 15:49:12 +00:00
|
|
|
|
if (isActive) UpdateStatTexts();
|
2026-01-30 03:24:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-01 15:49:12 +00:00
|
|
|
|
public void UpdateStatTexts()
|
2026-01-30 03:24:13 +00:00
|
|
|
|
{
|
|
|
|
|
|
if (playerStats == null) return;
|
|
|
|
|
|
|
|
|
|
|
|
maxHealthText.text = $"MaxHP: {playerStats.MaxHealth}";
|
|
|
|
|
|
strengthText.text = $"Strength: {playerStats.Strength}";
|
2026-02-01 15:49:12 +00:00
|
|
|
|
|
|
|
|
|
|
// ⭐ 데미지: 최종합 (+무기보너스)
|
|
|
|
|
|
damageText.text = $"Damage: {playerStats.TotalAttackDamage} (+{playerStats.weaponDamage})";
|
|
|
|
|
|
|
|
|
|
|
|
// ⭐ [수정] 스피드: 현재속도 (-무게페널티) 형태로 표기합니다.
|
|
|
|
|
|
// 페널티가 0보다 클 때만 빨간색 느낌으로 괄호 수치를 띄워줍니다.
|
|
|
|
|
|
string penaltyText = playerStats.WeightPenalty > 0 ? $" (-{playerStats.WeightPenalty:F1})" : "";
|
|
|
|
|
|
speedText.text = $"Speed: {playerStats.CurrentMoveSpeed:F1}{penaltyText}";
|
2026-01-30 03:24:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|