public override void Update() { base.Update(); if (freeze) { Thread.Sleep((int)(duration * 1000f)); } else { timer.DoOnce(duration, () => { Scene.Current.Destroy(this); closeCallback?.Invoke(this); }); } }