ErrorManager.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using TMPro;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. using XRTool.Util;
  8. public class ErrorManager : WindowSingleton<ErrorManager>
  9. {
  10. public Image iconBg;
  11. public RawImage icon;
  12. public TextMeshProUGUI TitleText;
  13. public TextMeshProUGUI MessageText;
  14. public TextMeshProUGUI actionText;
  15. public GameObject actionTextGO;
  16. public GameObject actionButtonGO;
  17. public TextMeshProUGUI bt0Text;
  18. public TextMeshProUGUI bt1Text;
  19. public TextMeshProUGUI bt2Text;
  20. int timeDjs = 0;
  21. Action<string> callback;
  22. List<string> backList;
  23. public void show(string title,string Msg,Color iconBg,Texture icon, List<string> backList, Action<string> callback, bool isText = true, string djsMsg="", int time=5,string bt0Name="",string bt1Name="",string bt2Name="")
  24. {
  25. this.gameObject.SetActive(true);
  26. TitleText.text = title;
  27. MessageText.text = Msg;
  28. actionText.text = "(" + time + ")" + djsMsg;
  29. this.iconBg.color = iconBg;
  30. this.icon.texture = icon;
  31. this.backList = backList;
  32. this.callback = callback;
  33. if (isText)
  34. {
  35. actionTextGO.gameObject.SetActive(true);
  36. actionButtonGO.gameObject.SetActive(false);
  37. timeDjs = time;
  38. TimerMgr.Instance.CreateTimer(()=> {
  39. timeDjs--;
  40. if(timeDjs<=0)
  41. {
  42. gotoBt(0);
  43. }
  44. actionText.text = "(" + timeDjs + ")" + djsMsg;
  45. },1, time);
  46. }else
  47. {
  48. actionTextGO.gameObject.SetActive(false);
  49. actionButtonGO.gameObject.SetActive(true);
  50. if (bt0Name!="")
  51. {
  52. bt0Text.text = bt0Name;
  53. bt0Text.transform.parent.gameObject.SetActive(true);
  54. bt1Text.transform.parent.gameObject.SetActive(false);
  55. bt2Text.transform.parent.gameObject.SetActive(false);
  56. }
  57. else
  58. {
  59. bt1Text.text = bt1Name;
  60. bt2Text.text = bt2Name;
  61. bt0Text.transform.parent.gameObject.SetActive(false);
  62. bt1Text.transform.parent.gameObject.SetActive(true);
  63. bt2Text.transform.parent.gameObject.SetActive(true);
  64. }
  65. }
  66. }
  67. public void gotoBt(int i)
  68. {
  69. callback.Invoke(backList[i]);
  70. this.gameObject.SetActive(false);
  71. WindowsManager.Instance.isShowTip = false;
  72. }
  73. }