源战役客户端
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.
 
 
 
 
 

89 rivejä
2.7 KiB

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