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