using UnityEngine; namespace Platformer.Mechanics { /// /// 무적 상태(Health.IsInvulnerable) 동안 SpriteRenderer를 토글하여 깜빡임 시각 피드백 제공. /// PD 지시 2026-05-07 — 피격 0.5초·부활 2초 무적 시 깜빡거림 의무. /// PlayerController.Awake에서 자동 부착되므로 Inspector 부착 불요. /// [RequireComponent(typeof(Health))] public class PlayerInvulnerabilityFlash : MonoBehaviour { [Tooltip("깜빡임 토글 간격(초). 0.08~0.12 권장.")] public float flashInterval = 0.1f; Health health; SpriteRenderer spriteRenderer; float flashTimer; void Awake() { health = GetComponent(); spriteRenderer = GetComponent(); if (spriteRenderer == null) spriteRenderer = GetComponentInChildren(); } void Update() { if (health == null || spriteRenderer == null) return; if (health.IsInvulnerable) { flashTimer -= Time.deltaTime; if (flashTimer <= 0f) { spriteRenderer.enabled = !spriteRenderer.enabled; flashTimer = flashInterval; } } else { spriteRenderer.enabled = true; flashTimer = 0f; } } } }