笔者今天遇到了一个很奇妙的bug
loadingGame.allowSceneActivation = false;
while (loadingGame.progress < 0.9)就是这样两行代码,我们都知道设置了allowSceneActivation = false后,progress的值会在加载到0.9后停止
但是在判断语句时,progress却不能直接和0.9比较大小,这样会导致unity死循环,然后卡死
在0.9后加一个f,将其改变成0.9f,再运行就可以了
loadingGame.allowSceneActivation = false;
while (loadingGame.progress < 0.9f)这样,运行就不会再出问题,初步推断bug原因是int和float的精度差距,导致while变成死循环
Unity加载场景时的浮点数精度引发的死循环问题
在Unity中,设置loadingGame.allowSceneActivation=false后,当loadingGame.progress小于0.9时的判断可能导致死循环。原因是int与float的精度差异,将0.9改为0.9f可以避免此问题,修复了可能的卡死现象。
545

被折叠的 条评论
为什么被折叠?



