源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.7 KiB

преди 4 седмици
  1. ExpMessageItem = ExpMessageItem or BaseClass(BaseItem)
  2. local ExpMessageItem = ExpMessageItem
  3. ExpMessageItem.PosX = 250+80--ScreenWidth/2-500
  4. ExpMessageItem.PosY = -ScreenHeight/2+200-25
  5. ExpMessageItem.PosZ = 0
  6. function ExpMessageItem:__init(parent,prefab_asset,layer_name,callback)
  7. self.base_file = "message"
  8. self.layout_file = "ExpMessageItem"
  9. self.layer_name = "Scene"
  10. self.anim_list = {}
  11. self.fade_out_time = 1
  12. self.state = 0
  13. self.content = ""
  14. self.callback = callback
  15. self:Load()
  16. end
  17. function ExpMessageItem:__delete()
  18. end
  19. function ExpMessageItem:Load_callback()
  20. self.exp_label = self:GetChild("exp_label"):GetComponent("Text")
  21. self.normal_label = self:GetChild("normal_label"):GetComponent("Text")
  22. self.canvasGroup = self.transform:GetComponent("CanvasGroup")
  23. self.gameObject:SetActive(false)
  24. --不仅z轴要跑到最前面, orderinlayer也要最前面
  25. UIDepth.SetUIDepth(self.gameObject,true,self:GetCurrLayerDepth(self.layer_name)+1)
  26. --层次要在ui层,不设就在default层,会低于ui层而看不到
  27. self.gameObject.layer = UIPartical.RenderingOther_List.UI
  28. if self.need_refreshData then
  29. self:SetData(self.info)
  30. end
  31. end
  32. function ExpMessageItem:SetData(info)
  33. self.info = info
  34. if self.has_data then
  35. return
  36. end
  37. if self.is_loaded then
  38. self.has_data = true
  39. self.content = info.content or 0
  40. self.percent = info.percent or 0
  41. self.is_normal = info.is_normal --普通文本,不需要经验字体
  42. self.is_score = info.is_score -- 积分文本,使用经验字体,但积分字符为[s]
  43. -- self:ResetUIZDepth()
  44. -- self:AddUIZDepth()
  45. self.canvasGroup.alpha = 1
  46. if not self.gameObject.activeSelf then
  47. self.gameObject:SetActive(true)
  48. end
  49. self:MoveInToScreen(self.transform)
  50. --设置每一个item的位置
  51. if SceneManager.Instance:IsBeachScene() or SceneManager.Instance:IsGuildScene() then
  52. SetLocalPosition(self.transform, 0, ExpMessageItem.PosY+ScreenHeight * 0.39, ExpMessageItem.PosZ)
  53. else
  54. SetLocalPosition(self.transform, ExpMessageItem.PosX, ExpMessageItem.PosY, ExpMessageItem.PosZ)
  55. end
  56. --设置文本
  57. if not self.is_normal then
  58. local percent_str = ""
  59. if self.percent and self.percent ~= 0 then
  60. percent_str = "(+"..self.percent.."%)"
  61. end
  62. self.exp_label.text = (self.is_score and "s" or "f")..self.content..percent_str
  63. else
  64. self.normal_label.text = self.content
  65. end
  66. self.need_refreshData = false
  67. else
  68. self.need_refreshData = true
  69. end
  70. end
  71. function ExpMessageItem:Reset( )
  72. if not self.gameObject then
  73. return
  74. end
  75. -- self.gameObject:SetActive(false)
  76. self:MoveOutOfScreen(self.transform)
  77. self.has_data = false
  78. self.exp_label.text = ""
  79. self.normal_label.text = ""
  80. -- SetLocalPosition(self.transform, ExpMessageItem.PosX, ExpMessageItem.PosY, ExpMessageItem.PosZ)
  81. end