LeaderBoard.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. public class LeaderBoard : PopUpPanel {
  6. public GameObject leaderBoardItemPrefab;
  7. public Text title;
  8. public Transform itemContainer;
  9. public LeaderBoardItem myRank;
  10. public Text loadingText;
  11. void Awake()
  12. {
  13. title.text = Language.GetStr ("LeaderBoard", "title");
  14. loadingText.text = Language.GetStr ("Public", "loading");
  15. }
  16. // Use this for initialization
  17. void Start ()
  18. {
  19. RequestData ();
  20. }
  21. private void RequestData()
  22. {
  23. loadingText.enabled = true;
  24. LeaderBoardManager.GetInstance ().OnSetData += OnSetData;
  25. LeaderBoardManager.GetInstance ().RequestData ();
  26. }
  27. private void OnSetData()
  28. {
  29. LeaderBoardManager.GetInstance ().OnSetData -= OnSetData;
  30. List<LeaderBoardItemData> list = LeaderBoardManager.GetInstance ().GetData ();
  31. for(int i=0; i<list.Count; i++)
  32. {
  33. GameObject itemObj = Instantiate<GameObject>(leaderBoardItemPrefab);
  34. LeaderBoardItem item = itemObj.GetComponent<LeaderBoardItem>();
  35. PopUpManager.AddToMainCanvas(itemObj, itemContainer);
  36. item.SetData(list[i]);
  37. }
  38. loadingText.enabled = false;
  39. }
  40. public void SetMyRankIndex(int rankIndex)
  41. {
  42. LeaderBoardItemData data = new LeaderBoardItemData(rankIndex+1, null);
  43. UserData userData = Session.GetInstance().myUserData;
  44. data.id = userData.id;
  45. data.nick = userData.nick;
  46. data.win = userData.win;
  47. data.lose = userData.lose;
  48. data.rank = userData.rank;
  49. myRank.SetData(data);
  50. }
  51. override protected void Remove()
  52. {
  53. this.gameObject.SetActive (false);
  54. PopUpManager.UpdateModal();
  55. }
  56. private static LeaderBoard currentPanel;
  57. public static LeaderBoard Show()
  58. {
  59. if (currentPanel != null) {
  60. currentPanel.gameObject.SetActive (true);
  61. PopUpManager.AddToMainCanvas (currentPanel.gameObject);
  62. }
  63. else
  64. currentPanel = PopUpManager.AddPopUp<LeaderBoard> (Resources.Load<GameObject> ("Prefabs/UI/LeaderBoard/LeaderBoard"), null, true);
  65. currentPanel.Open ();
  66. return currentPanel;
  67. }
  68. }