using UnityEngine; using UnityEngine.UI; /// /// Attach this script to a Text object in the scene to manually set it as the output target /// for the SkillTriggerFeedUI. This bypasses the automatic GameObject.Find logic. /// public class SkillTriggerFeedBinder : MonoBehaviour { [Tooltip("The Text component to use for displaying skill triggers. If null, tries to use GetComponent().")] public Text targetText; [Tooltip("Whether to enable skill trigger output.")] public bool enableOutput = true; [Header("Feed Colors")] public Color characterNameColor = new Color(1f, 0.5f, 0f); // Orange public Color skillNameColor = Color.cyan; // Cyan/Blue public Color missColor = new Color(1f, 0.27f, 0f); // Orange Red public Color deathColor = Color.black; // Black [Header("Enemy Feed Colors")] public Color enemyNameColor = Color.red; // Default red for enemies public Color enemySpawnColor = Color.yellow; // Default yellow for spawn message private void Awake() { if (targetText == null) { targetText = GetComponent(); } if (targetText != null) { if (enableOutput) { UpdateColors(); SkillTriggerFeedUI.SetTargetText(targetText); } else { // Ensure UI is disabled if toggle is off SkillTriggerFeedUI.SetTargetText(null); } } else { Debug.LogWarning("[SkillTriggerFeedBinder] No Text component found or assigned. Skill feed will not be bound."); } } private void OnValidate() { if (Application.isPlaying && targetText != null) { if (enableOutput) { UpdateColors(); SkillTriggerFeedUI.SetTargetText(targetText); } else { SkillTriggerFeedUI.SetTargetText(null); } } } private void UpdateColors() { SkillTriggerFeedUI.CharacterColor = characterNameColor; SkillTriggerFeedUI.SkillColor = skillNameColor; SkillTriggerFeedUI.MissColor = missColor; SkillTriggerFeedUI.DeathColor = deathColor; SkillTriggerFeedUI.EnemyNameColor = enemyNameColor; SkillTriggerFeedUI.EnemySpawnColor = enemySpawnColor; } }