using UnityEngine; namespace TKS.OutGame { /// /// 등장 튀김(Fable 제안서 §4-2 「별 0.15 s 간격 scale 1.4→1」) — 켜질 때마다 delay 뒤 from → 1 · 시간 = 실시간(일시정지 무관). /// 움직이는 동안 매 프레임 바뀌므로 Frame 캔버스로 분리(부모가 이미 Frame 층이면 그 층 · PD 2026-11-10 캔버스 분할) · 끝나면 쓰기를 멈춘다. /// public class UiPop : MonoBehaviour { public float delay; public float from = 1.4f; public float duration = 0.18f; float t0; bool done; void Awake() { UiLayer.Isolate(gameObject); } void OnEnable() { Play(); } public void Play() { t0 = Time.unscaledTime + delay; done = false; transform.localScale = Vector3.zero; } void Update() { if (done) return; float t = Time.unscaledTime - t0; if (t < 0f) return; // 기다리는 동안 = Play 가 둔 0 그대로 float k = duration > 0f ? Mathf.Clamp01(t / duration) : 1f; transform.localScale = Vector3.one * Mathf.Lerp(from, 1f, 1f - (1f - k) * (1f - k)); done = k >= 1f; } } }