Unity开发bug——倒计时初始值默认显示不正确

简介: 倒计时初始值默认显示不正确

bug描述

今天做倒计时的时候,发现了一个bug,偶尔倒计时一开始显示的59:59。最开始以为是倒计时计时钱前没有将Text重置,后面发现重置了也会出现这个问题。

bug查找

打断点,打log,一直找不到问题所在。突然眼前灵光一闪,难道是计算出来的数值有问题?
代码如下,欢迎各位品尝

--时间戳转换为 00:00:00 格式
local function FormatTime(second)
    local min = math.floor(second % 3600 / 60)
    local sec = second % 60

    return string.format("%02d:%02d", min, sec)
end

local funciton CountDown(second)
    ui.tm = base:findtext("Text")
    local now = os.time()
    local startTm = XX;
    local matchTimer = now - startTm--获取相隔时间戳
    ui.cor2 = coroutine.start(function()
        while (true) do
            ui.tm.text = FormatTime(matchTimer)
            coroutine.wait(1)
            matchTimer = matchTimer + 1
        end
    end)
end

bug分析

果然,真的是数值的问题,发现倒计时时间戳计算结果是-1,经过格式化转换,就变成了59:59。当传进去的参参数是-1时,FormatTime返回的值就是 59:59

bug解决

控制间隔值不低于1,即可避免问题发生,使用math.max控制,如下:

matchTimer = math.max(now - startTm,0)
相关文章
|
3月前
|
算法 安全 图形学
Unity Hololens2开发|(十一)MRTK3 Solver(求解器)
Unity Hololens2开发|(十一)MRTK3 Solver(求解器)
|
3月前
|
API 图形学
Unity Hololens2开发|(十)MRTK3空间操作 ObjectManipulator (对象操控器)
Unity Hololens2开发|(十)MRTK3空间操作 ObjectManipulator (对象操控器)
|
3月前
|
Go 图形学
Unity Hololens2开发|(九)MRTK3空间操作 ConstraintManager(约束)
Unity Hololens2开发|(九)MRTK3空间操作 ConstraintManager(约束)
|
3月前
|
算法 图形学 UED
Unity Hololens2开发|(八)MRTK3空间操作 BoundsControl(边界控制)
Unity Hololens2开发|(八)MRTK3空间操作 BoundsControl(边界控制)
|
3月前
|
图形学
Unity Hololens2开发|(七)MRTK3子系统 TextToSpeechSubsystem(文本转语音)
Unity Hololens2开发|(七)MRTK3子系统 TextToSpeechSubsystem(文本转语音)
|
3月前
|
图形学
Unity Hololens2开发|(六)MRTK3子系统 DictationSubsystem(听写功能)
Unity Hololens2开发|(六)MRTK3子系统 DictationSubsystem(听写功能)
|
3月前
|
图形学
Unity Hololens2开发|(五)MRTK3子系统 KeywordRecognitionSubsystem(关键字识别)
Unity Hololens2开发|(五)MRTK3子系统 KeywordRecognitionSubsystem(关键字识别)
|
4月前
|
图形学
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
|
4月前
|
设计模式 存储 前端开发
【Unity3D日常开发】Unity3d中使用MVC框架
【Unity3D日常开发】Unity3d中使用MVC框架
|
10月前
|
人工智能 算法 安全
开源游戏区块链项目分享:Unity开发的独立区块链
开源游戏区块链项目分享:Unity开发的独立区块 2023年了,区块链在这此时代热浪下都已经是即将燃尽的火苗了,而ChatGPT、Stable Diffusion等AI产品已经成为当下风口和热浪。然而区块链作为上一任浪热下的余晖,真的就这么完事了么?其实目前区块链在国内更多作为信用链存在,用于法律签约、物流运输、商务合作、加密合约等等公共底层方面。 而此文将不仅探讨区块链的其他实际用途,同时也开源了一个Unity3D C#编写的区块链代码,如果你是技术人员,刚好你做区块链项目,希望这个文章和代码能帮助到你。
544 0