UGCProjects/ProjectTemp_T/Script/UI/Tool/WB_CountDownTime.lua
2025-01-04 23:00:19 +08:00

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;