local Action_GameStart = { }; -- 触发器激活时,将执行Action的Execute function Action_GameStart:Execute(...) -- 游戏正式开始 self.GameTime = DefaultSettings.GameTime; if self.GameTime == -1 then self.CountTime = 0; self.GameTimeTick = 0.; else self.CountTime = math.floor(DefaultSettings.GameTime); end GameState:OnGameStart(); UGCEventSystem.AddListener(EventTypes.GameEnd, self.GameEnd, self); return true end function Action_GameStart:GameEnd() self.bEnableActionTick = false; GameState:ChangeGameProgressState(DefaultSettings.EGameProgress.ENDED); end -- 需要勾选Action的EnableTick,才会执行Update -- 触发器激活后,将在每个tick执行Action的Update,直到self.bEnableActionTick为false function Action_GameStart:Update(DeltaSeconds) if self.GameTime > 0 then self.GameTime = self.GameTime - DeltaSeconds; local CurrTime = math.floor(self.GameTime); if CurrTime ~= self.CountTime then --UGCGameSystem.GameState:OnGameProgress_Tick(CurrTime); self.CountTime = CurrTime; end if self.CountTime <= 0 then self:GameEnd(); end else self.GameTimeTick = self.GameTimeTick + DeltaSeconds; local CurrTime = math.floor(self.GameTimeTick); if CurrTime ~= self.CountTime then --UGCGameSystem.GameState:OnGameProgress_Tick(CurrTime); self.CountTime = CurrTime; end end end return Action_GameStart