/// <summary> /// 创建一个错误消息窗口; /// </summary> /// <param name="onConfirm">当点击确认时的操作,若为Null则无操作</param> public PrefabMessageWindow CreateErrorInfoWindow(Transform parent, Exception ex, UnityAction onConfirm) { if (parent == null) { throw new ArgumentNullException(nameof(parent)); } if (ex == null) { throw new ArgumentNullException(nameof(ex)); } PrefabMessageWindow prefab = uiMessageWindowPrefab; var instance = GameObject.Instantiate(prefab, parent); instance.TitleMessageText.text = "Error"; instance.MessageText.text = ex.ToString(); instance.MultipleChoices.Clear(); var confirmButton = GameObject.Instantiate(buttonPrefab, instance.MultipleChoices.Transform); confirmButton.TextObject.text = "Confirm"; confirmButton.ButtonObject.onClick.AddListener(() => GameObject.Destroy(instance.gameObject)); if (onConfirm != null) { confirmButton.ButtonObject.onClick.AddListener(onConfirm); } return(instance); }
/// <summary> /// 创建一个消息窗口; /// </summary> /// <param name="onConfirm">当点击确认时的操作,若为Null则无操作</param> public PrefabMessageWindow CreateInfoWindow(Transform parent, string titleMessage, string message, params ButtonInfo[] buttonInfos) { if (parent == null) { throw new ArgumentNullException(nameof(parent)); } PrefabMessageWindow prefab = uiMessageWindowPrefab; var instance = GameObject.Instantiate(prefab, parent); instance.TitleMessageText.text = titleMessage; instance.MessageText.text = message; instance.MultipleChoices.Clear(); CreateButtons(instance.MultipleChoices.Transform, buttonInfos); return(instance); }