97 lines
2.3 KiB
Plaintext
97 lines
2.3 KiB
Plaintext
local baseCell = autoImport("BaseCell")
|
|
ChatBarrageCell = reusableClass("ChatBarrageCell",baseCell)
|
|
ChatBarrageCell.PoolSize = 12
|
|
|
|
local resID = ResourcePathHelper.UICell("ChatBarrageCell")
|
|
local tmpPos = LuaVector3(0,0,0)
|
|
|
|
function ChatBarrageCell:FindObjs()
|
|
self.label = self.gameObject:GetComponent(UILabel)
|
|
self.tweenPosition = self.gameObject:GetComponent(TweenPosition)
|
|
end
|
|
|
|
function ChatBarrageCell:SetData(data)
|
|
if data then
|
|
self.label.text = data.name..ZhString.Colon..data.text
|
|
self.label.fontSize = math.random(GameConfig.Barrage.ScreenMin, GameConfig.Barrage.ScreenMax)
|
|
|
|
local h = math.random(self:GetMinH(), self:GetMaxH())
|
|
|
|
self.tweenPosition.duration = math.random(GameConfig.Barrage.DurationMin, GameConfig.Barrage.DurationMax)
|
|
tmpPos:Set(640,
|
|
h ,
|
|
0)
|
|
self.tweenPosition.from = tmpPos
|
|
tmpPos:Set(-640 - self.label.localSize.x,
|
|
h ,
|
|
0)
|
|
self.tweenPosition.to = tmpPos
|
|
self.tweenPosition:ResetToBeginning()
|
|
self.tweenPosition:PlayForward()
|
|
|
|
self.tweenPosition:SetOnFinished(function ()
|
|
ReusableObject.Destroy(self)
|
|
end)
|
|
end
|
|
end
|
|
|
|
function ChatBarrageCell:SetMaxH(maxH)
|
|
self.maxH = maxH
|
|
end
|
|
|
|
function ChatBarrageCell:GetMaxH()
|
|
if self.maxH == nil then
|
|
local activeH = GameObjectUtil.Instance:GetUIActiveHeight(self.gameObject)
|
|
self.maxH = activeH / 2
|
|
end
|
|
|
|
return self.maxH
|
|
end
|
|
|
|
function ChatBarrageCell:SetMinH(minH)
|
|
self.minH = minH
|
|
end
|
|
|
|
function ChatBarrageCell:GetMinH()
|
|
if self.minH == nil then
|
|
self.minH = self.label.localSize.y
|
|
end
|
|
|
|
return self.minH
|
|
end
|
|
|
|
function ChatBarrageCell:CreateSelf(parent)
|
|
self.gameObject = Game.AssetManager_UI:CreateChatAsset(resID,parent)
|
|
end
|
|
|
|
function ChatBarrageCell:Construct(asArray, args)
|
|
self._alive = true
|
|
self:DoConstruct(asArray, args)
|
|
end
|
|
|
|
function ChatBarrageCell:Deconstruct()
|
|
self._alive = false
|
|
self.data = nil
|
|
self.maxH = nil
|
|
self.minH = nil
|
|
Game.GOLuaPoolManager:AddToChatPool(self.gameObject)
|
|
end
|
|
|
|
function ChatBarrageCell:Alive()
|
|
return self._alive
|
|
end
|
|
|
|
-- override begin
|
|
function ChatBarrageCell:DoConstruct(asArray, parent)
|
|
if self.gameObject == nil then
|
|
self:CreateSelf(parent)
|
|
self:FindObjs()
|
|
else
|
|
self.gameObject = Game.GOLuaPoolManager:GetFromChatPool(self.gameObject,parent)
|
|
end
|
|
end
|
|
|
|
function ChatBarrageCell:Finalize()
|
|
GameObject.Destroy(self.gameObject)
|
|
end
|
|
-- override end |