//シーケンス内で呼び出し、閉じるまで待つ public static IEnumerator OpenInProcess(ModalDialogElement element, DialogType type = DialogType.App) { /* * if (Instance.Current == State.Init) * { * yield break; * }*/ yield return(Instance.OpenAndWaitForClose(element, type)); }
IEnumerator OpenAndWaitForClose(ModalDialogElement element, DialogType type = DialogType.App) { var dialog = InstantiateDialog(_dialogPrefab); dialog.Setup(element); yield return(dialog.WaitForEndState()); DestroyDialog(dialog); }
void SetButtons(ModalDialogElement element) { if (element.Buttons == null) { return; } foreach (var buttonData in element.Buttons) { var button = Instantiate(_buttonPrefab, _buttonGrid.transform); button.Button.onClick.AddListener(() => OnPushButton(buttonData.Value)); button.Text.text = buttonData.Key; } }
//出すだけ public static void Open(ModalDialogElement element, DialogType type = DialogType.App) { var dialog = Instance.InstantiateDialog(Instance._dialogPrefab); dialog.Setup(element); }
public abstract void Setup(ModalDialogElement element);
public void SetupElement(ModalDialogElement element) { Setup(element); }
public override void Setup(ModalDialogElement element) { _title.text = element.Title; _message.text = element.Message; SetButtons(element); }