diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BattleUnit.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BattleUnit.lua index 6e6eff6ca6..980be8b4a1 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BattleUnit.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/BattleUnit.lua @@ -40,29 +40,25 @@ function BattleUnit:DelayFunc(time, func) end local timer timer = Timer.New(function () - if func then func() func = nil end + if self._DelayFuncList[timer] then + self._DelayFuncList[timer]() + end self:ClearDelayFunc(timer) end, time) timer:Start() - table.insert(self._DelayFuncList, timer) + -- + self._DelayFuncList[timer] = func end function BattleUnit:ClearDelayFunc(t) if not self._DelayFuncList then return end if t then - local rIndex - for index, timer in ipairs(self._DelayFuncList) do - if timer == t then - rIndex = index - break - end - end - if rIndex then - self._DelayFuncList[rIndex]:Stop() - table.remove(self._DelayFuncList, rIndex) + if self._DelayFuncList[t] then + t:Stop() + self._DelayFuncList[t] = nil end else - for _, timer in ipairs(self._DelayFuncList) do + for timer, func in pairs(self._DelayFuncList) do timer:Stop() end self._DelayFuncList = {}