StartCoroutine 加载配置文件卡顿现象严重

            一般我们加载游戏客户端配置文件到内存中时,都是用StartCoroutine的方式

                 private IEnumerator loadConfigFromLocal (string path, string name, int version)
{       
Debug.Log (name + " :load time start= " + UtilTool.getNowDate () + "---frameCount=" + Time.frameCount);
using (WWW www = new WWW(path)) {
Debug.Log (name + " :load time processing = " + UtilTool.getNowDate () + "---frameCount=" + Time.frameCount);
yield return www;
Debug.Log (name + " :load time end= " + UtilTool.getNowDate () + "---frameCount=" + Time.frameCount);
if (www.error == null) {

if (this.loadEvent != null) {
loadEvent (this);
}
} else {
Debug.Log (www.error);
}
}

                          一般的做法就是有一个main配置表里面列举了所有需要加载的子配置表。在加载子配置表的时候切不可用for循环一次性全部用委托去调用StartCoroutine利用协程读取。因为for循环处于当前帧中。因此所有的WWW www = new WWW(srting url)操作会全部在当前帧中执行完。同时会导致的后果就是,所有的加载配置文件操作会被Unity强制的在下一帧内完成。此时就会出现加载配置文件时帧数极低。因为此时的当前帧要负责加载完所有配置。建议做法是用Queue存储所有的配置文件。利用队列一帧一帧的加载。

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值