|
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
|