using System.Collections.Generic; using UnityEngine; public class BaseBoard : MonoBehaviour { List m_dialogs = new List(); //----------------------------------------------------------------------------------------- void Start () { } //------------------------------------------------------------------ public virtual void ApplaySafeAreaHudShift() { } //----------------------------------------------------------------------------------------- public int DialogsCount { get { return m_dialogs.Count; } } //----------------------------------------------------------------------------------------- public virtual void Update () { CommonFunctions.CheckTestKeyPressed(); } //----------------------------------------------------------------------------------------- public GameObject StartDialog(string dlgName) { GameObject backObj = GameObject.FindGameObjectWithTag("BackForInterface"); if (!backObj) return null; MainMenu menu = this as MainMenu; if (!menu) Time.timeScale = 0f; GameObject dlgObj = Instantiate(Resources.Load("prefabs/Dialogs/" + dlgName) as GameObject); dlgObj.transform.SetParent(backObj.transform); dlgObj.transform.SetAsLastSibling(); dlgObj.transform.localScale = Vector3.one; dlgObj.transform.localPosition = Vector3.zero; m_dialogs.Add(dlgObj); return dlgObj; } //----------------------------------------------------------------------------------------- public void StartNoInternetDialogIfNeed() { if (GlobalsVar.gRealPurchasesWasInitialized) return; GameObject noInternetDlg = StartDialog("NoInternetDialog"); noInternetDlg.GetComponent().Init(); } //------------------------------------------------------------------ public GameObject GetDialogByType(DialogType type) { foreach (GameObject dialogObj in m_dialogs) { BaseDialog dialog = dialogObj.GetComponent(); if (!dialog) CommonFunctions.myassert(false, "Dialog component not found!"); if (dialog.Type == type) return dialogObj; } return null; } //----------------------------------------------------------------------------------------- public void CloseWaitDlg() { GameObject dlg = GetDialogByType(DialogType.WAIT_DIALOG); if (dlg) { RemoveDialog(dlg); Destroy(dlg); } } //----------------------------------------------------------------------------------------- public void RemoveDialog(GameObject dlgObj) { Time.timeScale = 1f; if (m_dialogs.Contains(dlgObj)) m_dialogs.Remove(dlgObj); } }