|
|
- DungeonTimer = DungeonTimer or BaseClass(UIPartical)
-
- function DungeonTimer:__init(parent, endTime, callBack, layer_name,position)
- self.gameObject = GameObject.New("timer")
- self.gameObject.transform:SetParent(parent, false)
- -- self.img = self.gameObject:AddComponent(typeof(UnityEngine.UI.Image))
- self.transform = self.gameObject.transform
- -- self.transform.sizeDelta = Vector2(0,0)
- self.position = position
- self.runOut_callBack = callBack
- self.endTime = endTime
- self.layer_name = layer_name or "Main"
- self:Run()
- end
-
- function DungeonTimer:Run()
- self:Stop()
- local leftTime = self.endTime - TimeUtil:getServerTime()
- if leftTime <= 0 then
- if self.runOut_callBack then self.runOut_callBack() end
- return
- elseif leftTime == 3 then
- self:AddUIEffect("ui_effect_paiweinumber", self.transform, self.layer_name, nil, 1, false, 3)
- -- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_"..leftTime, true)
- end
- if self.timer_id then
- GlobalTimerQuest:CancelQuest(self.timer_id)
- self.timer_id = nil
- end
- local function timer_handler()
- local leftTime = self.endTime - TimeUtil:getServerTime()
- if leftTime == 0 then
- -- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_start", true)
- -- self:AddUIEffect("effect_paiwei_02", self.transform, self.layer_name, nil, 1, false, 2, nil, function()
- self:Stop(true)
- if self.runOut_callBack then
- self.runOut_callBack()
- self.runOut_callBack = nil
- end
- -- end)
- elseif leftTime < 0 then
- if self.runOut_callBack then
- self.runOut_callBack()
- self.runOut_callBack = nil
- end
- else
- if leftTime == 3 then
- self:AddUIEffect("ui_effect_paiweinumber", self.transform, self.layer_name, nil, 1, false, 3)
- -- lua_resM:setImageSprite(self, self.img, "sceneUI_asset", "scene_countdown_"..leftTime, true)
- end
- end
- end
-
- if self.position then
- SetLocalPosition(self.transform,self.position.x,self.position.y,0)
- end
-
- self.gameObject:SetActive(true)
- self.timer_id = GlobalTimerQuest:AddPeriodQuest(timer_handler, 1)
- end
-
- function DungeonTimer:Stop(hide)
- if self.timer_id then
- GlobalTimerQuest:CancelQuest(self.timer_id)
- self.timer_id = nil
- end
- if hide and self.gameObject then
- self.gameObject:SetActive(false)
- end
- end
-
- function DungeonTimer:__delete()
- self:Stop()
- if self.gameObject then
- destroy(self.gameObject, false)
- self.gameObject = nil
- end
- self.runOut_callBack = nil
- end
|