using UnityEngine; using UnityEngine.UI; using TMPro; using Colosseum.Enemy; namespace Colosseum.UI { /// /// 승리 UI 컨트롤러. /// GameManager에 의해 활성화/비활성화됩니다. /// public class VictoryUI : MonoBehaviour { [Header("UI References")] [Tooltip("승리 텍스트")] [SerializeField] private TMP_Text victoryText; [Tooltip("보스 이름 텍스트")] [SerializeField] private TMP_Text bossNameText; [Tooltip("승리 애니메이터")] [SerializeField] private Animator animator; [Header("Settings")] [Tooltip("승리 텍스트")] [SerializeField] private string victoryMessage = "VICTORY!"; [Tooltip("텍스트 색상")] [SerializeField] private Color textColor = Color.yellow; private void Start() { if (victoryText != null) { victoryText.text = victoryMessage; victoryText.color = textColor; } } private void OnEnable() { // 보스 이름 표시 if (bossNameText != null && BossEnemy.ActiveBoss != null) { bossNameText.text = BuildBossVictoryText(BossEnemy.ActiveBoss); } // 애니메이션 재생 if (animator != null) { animator.SetTrigger("Show"); } } /// /// 승리 UI에 표시할 보스 이름 문구를 생성합니다. /// private static string BuildBossVictoryText(BossEnemy boss) { if (boss == null) return string.Empty; string bossName = boss.Data != null && !string.IsNullOrWhiteSpace(boss.Data.EnemyName) ? boss.Data.EnemyName : boss.name; return $"{bossName} 격파"; } } }