void CheckAndShow() { if (currentDialog == null && listDialog.Count > 0) { currentDialog = listDialog[0]; currentDialog.ShowDialog(); currentDialog.onDestroy = () => { listDialog.RemoveAt(0); currentDialog = null; //Show Hide Animation Invoke("CheckAndShow", 0.3f); }; } }
IEnumerator _ShowDialog(IDialogData dialog) { //Chờ chờ chuyển cảnh xong và ổn định mới hiện dialog phần thưởng. if (dialog is DialogPromotion) { yield return(new WaitForSeconds(1.5f)); } if (dialog.IsMessageDialog == false) { dialog.ShowDialog(); } else if (!ContainDialog(dialog)) { listDialog.Add(dialog); while (PuApp.Instance.changingScene) { yield return(new WaitForEndOfFrame()); } CheckAndShow(); } }