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