/Assets/Script/Game/Controller/PopupController.cs
https://bitbucket.org/norris_abu/wanttodoodle · C# · 114 lines · 92 code · 21 blank · 1 comment · 12 complexity · dd173d1b3e5c382c75615e40fcf679ae MD5 · raw file
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Events;
- using DG.Tweening;
- using TMPro;
- public class PopupController : MonoBehaviour
- {
- public RectTransform rectPopupPanel;
- public Button okButton;
- public Button cancelButton;
- public TextMeshProUGUI txtTitle;
- public TextMeshProUGUI txtDescription;
- public CanvasGroup canvasGroup;
- public static void ShowPopup(string title, string description,
- string ok, string cancel, bool showOk, bool showCancel, bool showClose,
- UnityAction OnClickOk = null, UnityAction OnClickCancel = null)
- {
- PopupController pc = GameManager.Instance.popupController;
- pc.ShowPopup();
- pc.txtTitle.text = string.Format("{0}", title);
- pc.txtDescription.text = string.Format("{0}", description);
- pc.okButton.gameObject.SetActive(showOk);
- pc.cancelButton.gameObject.SetActive(showCancel);
- if (showOk && showCancel)
- {
- pc.okButton.GetComponent<RectTransform>().
- anchoredPosition = new Vector2(-110, -130);
- pc.cancelButton.GetComponent<RectTransform>().
- anchoredPosition = new Vector2(-110, -130);
- }
- else if(showOk && !showCancel)
- {
- pc.okButton.GetComponent<RectTransform>().
- anchoredPosition = new Vector2(0, -130);
- }
- else if (!showOk && showCancel)
- {
- pc.cancelButton.GetComponent<RectTransform>().
- anchoredPosition = new Vector2(0, -130);
- }
- pc.okButton.onClick.AddListener(() =>
- {
- if (OnClickOk != null)
- OnClickOk();
- pc.HidePopup();
- AudioManager.Instance.play_sfx("Audio/SFX/Click1", Vector3.zero);
- });
- pc.cancelButton.onClick.AddListener(() =>
- {
- if (OnClickCancel != null)
- OnClickCancel();
- pc.HidePopup();
- AudioManager.Instance.play_sfx("Audio/SFX/Click1", Vector3.zero);
- });
- }
- public static void ShowCommonPopup(string title, string description,
- UnityAction OnClickOk = null, UnityAction OnClickCancel = null)
- {
- ShowPopup(title, description, "OK", "CANCEL", true, true, true, OnClickOk, OnClickCancel);
- }
- public static void ShowConfirmPopup(string title, string description,
- UnityAction OnClickOk = null)
- {
- ShowPopup(title, description, "OK", "CANCEL", true, false, false, OnClickOk);
- }
- public void ShowPopup()
- {
- float showTime = 0.1f;
- canvasGroup.DOFade(1f, showTime)
- .OnComplete(() =>
- {
- canvasGroup.blocksRaycasts = true;
- canvasGroup.interactable = true;
- rectPopupPanel.DOScale(1, showTime);
- AudioManager.Instance.play_sfx("Audio/SFX/Popup", Vector3.zero);
- }).SetUpdate(true);
- }
- public void HidePopup()
- {
- //AudioManager.Instance.play_sfx("Audio/SFX/Close", Vector3.zero);
- float showTime = 0.1f;
- rectPopupPanel.DOScale(0, showTime).OnComplete(() =>
- {
- canvasGroup.blocksRaycasts = false;
- canvasGroup.interactable = false;
- canvasGroup.DOFade(0f, showTime);
- }).SetUpdate(true);
- cancelButton.onClick.RemoveAllListeners();
- okButton.onClick.RemoveAllListeners();
- }
- }