ProgressPanel.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. public class ProgressPanel : PopUpPanel {
  5. // Use 哈 this for initialization
  6. public Text uiText;
  7. private string text;
  8. private int count;
  9. private float lastUpdateTime;
  10. public void SetText(string text)
  11. {
  12. if (text != null)
  13. this.text = uiText.text = text;
  14. else
  15. this.text = uiText.text = "";
  16. count = 0;
  17. }
  18. // Use this for initialization
  19. void FixedUpdate ()
  20. {
  21. float currentTime = GameTime.time;
  22. if(Mathf.Floor(currentTime) != Mathf.Floor(lastUpdateTime))
  23. {
  24. int i = 0;
  25. int total = count%6;
  26. count++;
  27. string t = this.text;
  28. while(i < total)
  29. {
  30. t += ".";
  31. i++;
  32. }
  33. uiText.text = t;
  34. lastUpdateTime = currentTime;
  35. }
  36. }
  37. public static void Show(string text=null)
  38. {
  39. ProgressPanel panelProgress = null;
  40. ProgressPanel[] panelProgressArr = GameObject.FindObjectsOfType<ProgressPanel>();
  41. if(panelProgressArr.Length == 0)
  42. {
  43. panelProgress = (ProgressPanel)PopUpManager.AddPopUp(Resources.Load<GameObject>("Prefabs/UI/ProgressPanel"), null, true);
  44. }
  45. else
  46. {
  47. panelProgress = panelProgressArr[0];
  48. for(int i=1; i<panelProgressArr.Length; i++)
  49. {
  50. panelProgressArr[i].Close();
  51. }
  52. }
  53. panelProgress.SetText(text);
  54. panelProgress.Open();
  55. }
  56. public static void Hide()
  57. {
  58. ProgressPanel[] panelProgressArr = GameObject.FindObjectsOfType<ProgressPanel>();
  59. for(int i=0; i<panelProgressArr.Length; i++)
  60. {
  61. panelProgressArr[i].Close();
  62. }
  63. }
  64. }