123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 Jiang Yin. All rights reserved.
- // Homepage: https://gameframework.cn/
- // Feedback: mailto:ellan@gameframework.cn
- //------------------------------------------------------------
- using GameFramework;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityGameFramework.Runtime;
- namespace MetaClient
- {
- public class DialogForm : UGuiForm
- {
- [SerializeField]
- private Text m_TitleText = null;
- [SerializeField]
- private Text m_MessageText = null;
- [SerializeField]
- private GameObject[] m_ModeObjects = null;
- [SerializeField]
- private Text[] m_ConfirmTexts = null;
- [SerializeField]
- private Text[] m_CancelTexts = null;
- [SerializeField]
- private Text[] m_OtherTexts = null;
- private int m_DialogMode = 1;
- private bool m_PauseGame = false;
- private object m_UserData = null;
- private GameFrameworkAction<object> m_OnClickConfirm = null;
- private GameFrameworkAction<object> m_OnClickCancel = null;
- private GameFrameworkAction<object> m_OnClickOther = null;
- public int DialogMode
- {
- get
- {
- return m_DialogMode;
- }
- }
- public bool PauseGame
- {
- get
- {
- return m_PauseGame;
- }
- }
- public object UserData
- {
- get
- {
- return m_UserData;
- }
- }
- public void OnConfirmButtonClick()
- {
- Close();
- if (m_OnClickConfirm != null)
- {
- m_OnClickConfirm(m_UserData);
- }
- }
- public void OnCancelButtonClick()
- {
- Close();
- if (m_OnClickCancel != null)
- {
- m_OnClickCancel(m_UserData);
- }
- }
- public void OnOtherButtonClick()
- {
- Close();
- if (m_OnClickOther != null)
- {
- m_OnClickOther(m_UserData);
- }
- }
- #if UNITY_2017_3_OR_NEWER
- protected override void OnOpen(object userData)
- #else
- protected internal override void OnOpen(object userData)
- #endif
- {
- base.OnOpen(userData);
- DialogParams dialogParams = (DialogParams)userData;
- if (dialogParams == null)
- {
- Log.Warning("DialogParams is invalid.");
- return;
- }
- m_DialogMode = dialogParams.Mode;
- RefreshDialogMode();
- m_TitleText.text = dialogParams.Title;
- m_MessageText.text = dialogParams.Message;
- m_PauseGame = dialogParams.PauseGame;
- RefreshPauseGame();
- m_UserData = dialogParams.UserData;
- RefreshConfirmText(dialogParams.ConfirmText);
- m_OnClickConfirm = dialogParams.OnClickConfirm;
- RefreshCancelText(dialogParams.CancelText);
- m_OnClickCancel = dialogParams.OnClickCancel;
- RefreshOtherText(dialogParams.OtherText);
- m_OnClickOther = dialogParams.OnClickOther;
- }
- #if UNITY_2017_3_OR_NEWER
- protected override void OnClose(bool isShutdown, object userData)
- #else
- protected internal override void OnClose(bool isShutdown, object userData)
- #endif
- {
- if (m_PauseGame)
- {
- GameEntry.Base.ResumeGame();
- }
- m_DialogMode = 1;
- m_TitleText.text = string.Empty;
- m_MessageText.text = string.Empty;
- m_PauseGame = false;
- m_UserData = null;
- RefreshConfirmText(string.Empty);
- m_OnClickConfirm = null;
- RefreshCancelText(string.Empty);
- m_OnClickCancel = null;
- RefreshOtherText(string.Empty);
- m_OnClickOther = null;
- base.OnClose(isShutdown, userData);
- }
- private void RefreshDialogMode()
- {
- for (int i = 1; i <= m_ModeObjects.Length; i++)
- {
- m_ModeObjects[i - 1].SetActive(i == m_DialogMode);
- }
- }
- private void RefreshPauseGame()
- {
- if (m_PauseGame)
- {
- GameEntry.Base.PauseGame();
- }
- }
- private void RefreshConfirmText(string confirmText)
- {
- if (string.IsNullOrEmpty(confirmText))
- {
- confirmText = GameEntry.Localization.GetString("Dialog.ConfirmButton");
- }
- for (int i = 0; i < m_ConfirmTexts.Length; i++)
- {
- m_ConfirmTexts[i].text = confirmText;
- }
- }
- private void RefreshCancelText(string cancelText)
- {
- if (string.IsNullOrEmpty(cancelText))
- {
- cancelText = GameEntry.Localization.GetString("Dialog.CancelButton");
- }
- for (int i = 0; i < m_CancelTexts.Length; i++)
- {
- m_CancelTexts[i].text = cancelText;
- }
- }
- private void RefreshOtherText(string otherText)
- {
- if (string.IsNullOrEmpty(otherText))
- {
- otherText = GameEntry.Localization.GetString("Dialog.OtherButton");
- }
- for (int i = 0; i < m_OtherTexts.Length; i++)
- {
- m_OtherTexts[i].text = otherText;
- }
- }
- }
- }
|