|
|
- ExpMessageItem = ExpMessageItem or BaseClass(BaseItem)
- local ExpMessageItem = ExpMessageItem
- ExpMessageItem.PosX = 250+80--ScreenWidth/2-500
- ExpMessageItem.PosY = -ScreenHeight/2+200-25
- ExpMessageItem.PosZ = 0
-
- function ExpMessageItem:__init(parent,prefab_asset,layer_name,callback)
- self.base_file = "message"
- self.layout_file = "ExpMessageItem"
- self.layer_name = "Scene"
- self.anim_list = {}
- self.fade_out_time = 1
- self.state = 0
- self.content = ""
- self.callback = callback
- self:Load()
- end
-
- function ExpMessageItem:__delete()
-
- end
-
- function ExpMessageItem:Load_callback()
- self.exp_label = self:GetChild("exp_label"):GetComponent("Text")
- self.normal_label = self:GetChild("normal_label"):GetComponent("Text")
- self.canvasGroup = self.transform:GetComponent("CanvasGroup")
- self.gameObject:SetActive(false)
- --不仅z轴要跑到最前面, orderinlayer也要最前面
- UIDepth.SetUIDepth(self.gameObject,true,self:GetCurrLayerDepth(self.layer_name)+1)
- --层次要在ui层,不设就在default层,会低于ui层而看不到
- self.gameObject.layer = UIPartical.RenderingOther_List.UI
- if self.need_refreshData then
- self:SetData(self.info)
- end
- end
-
- function ExpMessageItem:SetData(info)
- self.info = info
- if self.has_data then
- return
- end
- if self.is_loaded then
- self.has_data = true
- self.content = info.content or 0
- self.percent = info.percent or 0
- self.is_normal = info.is_normal --普通文本,不需要经验字体
- self.is_score = info.is_score -- 积分文本,使用经验字体,但积分字符为[s]
- -- self:ResetUIZDepth()
- -- self:AddUIZDepth()
- self.canvasGroup.alpha = 1
- if not self.gameObject.activeSelf then
- self.gameObject:SetActive(true)
- end
- self:MoveInToScreen(self.transform)
- --设置每一个item的位置
-
- if SceneManager.Instance:IsBeachScene() or SceneManager.Instance:IsGuildScene() then
- SetLocalPosition(self.transform, 0, ExpMessageItem.PosY+ScreenHeight * 0.39, ExpMessageItem.PosZ)
- else
- SetLocalPosition(self.transform, ExpMessageItem.PosX, ExpMessageItem.PosY, ExpMessageItem.PosZ)
- end
- --设置文本
- if not self.is_normal then
- local percent_str = ""
- if self.percent and self.percent ~= 0 then
- percent_str = "(+"..self.percent.."%)"
- end
- self.exp_label.text = (self.is_score and "s" or "f")..self.content..percent_str
- else
- self.normal_label.text = self.content
- end
-
- self.need_refreshData = false
- else
- self.need_refreshData = true
- end
- end
-
- function ExpMessageItem:Reset( )
- if not self.gameObject then
- return
- end
- -- self.gameObject:SetActive(false)
- self:MoveOutOfScreen(self.transform)
- self.has_data = false
- self.exp_label.text = ""
- self.normal_label.text = ""
- -- SetLocalPosition(self.transform, ExpMessageItem.PosX, ExpMessageItem.PosY, ExpMessageItem.PosZ)
- end
|