Unity BUG解决——从数据库中加载数据的时候无法同步显示到UI上

前段时间遇到了一个很神奇的BUG,折腾了我很久,话不多说,让我们看看这个Bug是怎么回事

在做背包商城的时候,我在商城里购买完物品之后, 存储到数据库里, 但是没有在背包里刷新, 停掉游戏再打开的时候背包会读取数据库刷新物品。但是debug的时候该执行的步骤都执行过了  断点调试也没有问题.

Unity BUG解决——从数据库中加载数据的时候无法同步显示到UI上_第1张图片

现在有三个物品,点击购买后,背包没有显示。

Unity BUG解决——从数据库中加载数据的时候无法同步显示到UI上_第2张图片

把Unity停止运行后,再次打开背包中刷新了第四个物品,并打印出来了每个格子下面的信息。

Unity BUG解决——从数据库中加载数据的时候无法同步显示到UI上_第3张图片

再次购买后背包仍然没有更新第五个物品,但是日志中却打印出来了第五个格子下面的物品信息。

数据库中也存入了购买物品的信息。

那么在这个问题中也就是说,购买物品——>存入数据库——>读取数据库——>显示UI 经过分析得知,前三个过程都没有任何问题的话,在这个过程中可能显示UI的时候发生了错误,但是我的Debug确能找到我的第五个格子下面存储的信息,这不得不说就是很神奇的事情了。

Unity BUG解决——从数据库中加载数据的时候无法同步显示到UI上_第4张图片

我猜测在执行数据库操作的时候,由于数据的存储和读取是有时间的,而我的购买Button事件在购买的一瞬间那一帧就执行了读取操作,可能出现了延迟加载的情况,也正是这个原因,如果把读取操作放在Update里面实时读取就可以很完美的进行购买操作,这样的话我们可以通过协程来的方法来进行延时调用方法。

果然在使用协程的延时调用后解决了这个问题。

你可能感兴趣的:(UnityBug解决)