55 lines
1.5 KiB
Lua
55 lines
1.5 KiB
Lua
---@class WB_CountDownTime_C:UUserWidget
|
|
---@field TextBlock_Time UTextBlock
|
|
--Edit Below--
|
|
---@type WB_CountDownTime_C
|
|
local WB_CountDownTime = { bInitDoOnce = false; };
|
|
|
|
WB_CountDownTime.CountDownTimer = nil;
|
|
WB_CountDownTime.TotalTime = 0;
|
|
WB_CountDownTime.CurrentTime = 0;
|
|
|
|
function WB_CountDownTime:Construct()
|
|
|
|
end
|
|
|
|
-- function WB_CountDownTime:Tick(MyGeometry, InDeltaTime)
|
|
|
|
-- end
|
|
|
|
-- function WB_CountDownTime:Destruct()
|
|
|
|
-- end
|
|
|
|
--- 倒计时
|
|
function WB_CountDownTime:OnCountTime(InTime)
|
|
|
|
end
|
|
|
|
---@param InTime float 到达的时间
|
|
---@param IsCountDown bool 是否是倒计时,如果不是,就是正计时
|
|
function WB_CountDownTime:SetCountDownTime(InTime, IsCountDown, HasMinute)
|
|
self.TotalTime = InTime;
|
|
self.CurrentTime = 0;
|
|
self.CountDownTimer = UGCEventSystem.SetTimerLoop(self, function()
|
|
self.CurrentTime = self.CurrentTime + 1;
|
|
if IsCountDown then
|
|
local LastTime = self.TotalTime - self.CurrentTime;
|
|
if HasMinute then
|
|
self.TextBlock_Time:SetText(string.format("%02d:%02d", LastTime // 60, LastTime % 60));
|
|
else
|
|
self.TextBlock_Time:SetText(string.format("%02d", LastTime));
|
|
end
|
|
else
|
|
if HasMinute then
|
|
self.TextBlock_Time:SetText(string.format("%02d:%02d", self.CurrentTime // 60, self.CurrentTime % 60));
|
|
else
|
|
self.TextBlock_Time:SetText(string.format("%02d", self.CurrentTime));
|
|
end
|
|
end
|
|
if self.CurrentTime >= self.TotalTime then
|
|
UGCEventSystem.StopTimer(self.CountDownTimer);
|
|
end
|
|
end, 1);
|
|
end
|
|
|
|
return WB_CountDownTime; |