您的位置:首页 > 其它

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

2014-09-20 15:12 260 查看
一般我们加载游戏客户端配置文件到内存中时,都是用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存储所有的配置文件。利用队列一帧一帧的加载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: