WidgetHero.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using GameLogic.Hero;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. namespace Fort23.Mono
  5. {
  6. [UIBinding(prefab = "Widget_Hero" )]
  7. public partial class WidgetHero : UIComponent
  8. {
  9. private void Init()
  10. {
  11. }
  12. public override void AddEvent()
  13. {
  14. }
  15. public override void DelEvent()
  16. {
  17. }
  18. public override void AddButtonEvent()
  19. {
  20. btnHero.onClick.AddListener(OnHeroClick);
  21. }
  22. private void OnHeroClick()
  23. {
  24. }
  25. /// <summary>
  26. ///
  27. /// </summary>
  28. /// <param name="heroInfo"></param>
  29. public void InitHero(HeroInfo heroInfo)
  30. {
  31. lv.text = heroInfo.lv.ToString();
  32. // 最大星级展示个数(6星,只显示一颗星星,换颜色)
  33. int maxShowStar = 5;
  34. // 计算 当前星级 应该用什么星星的表现
  35. int group = (heroInfo.star - 1) / maxShowStar;
  36. int i = 1;
  37. foreach (var star in stars)
  38. {
  39. GameObject starObj = star as GameObject;
  40. SetStarImg(group, starObj);
  41. if (heroInfo.star >= i)
  42. {
  43. starObj.SetActive(true);
  44. }
  45. else
  46. {
  47. starObj.SetActive(false);
  48. }
  49. i++;
  50. }
  51. }
  52. private void SetStarImg(int group, GameObject starObj)
  53. {
  54. Image image = starObj.GetComponent<Image>();
  55. // 执行对应的逻辑 (0)GradeIcon_Star_s_Yellow (1)GradeIcon_Star_s_Premium
  56. switch (group)
  57. {
  58. case 0: // n = 1~5
  59. image.name = "GradeIcon_Star_s_Yellow";
  60. break;
  61. case 1: // n = 6~10
  62. image.name = "GradeIcon_Star_s_Premium";
  63. break;
  64. default: // 其他情况
  65. image.name = "GradeIcon_Star_s_Yellow";
  66. break;
  67. }
  68. }
  69. }
  70. }