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存储所有的配置文件。利用队列一帧一帧的加载。
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存储所有的配置文件。利用队列一帧一帧的加载。
相关文章推荐
- 快速上手Spring--3. 加载Bean的配置文件
- Application_Start事件中修改配置文件内容
- Spring的ApplicationContext加载多个配置文件的三种方式
- 加载spring配置文件的常用三种方法
- 多个 spring的配置文件加载
- win2003启动无法加载本地配置文件的修复办法
- spring 中加载xml配置文件的方式
- Spring配置文件加载时出现Bean property 'newscontentDAO' is not writable or has an invalid setter method错误的解决[00原创]
- Linux设备驱动框架、配置文件及加载
- spring配置文件加载
- WinCE设备取得应用程序当前目录并加载配置文件
- 快速上手Spring--3. 加载Bean的配置文件
- 快速上手Spring--3. 加载Bean的配置文件
- Spring2.0配置文件加载util标签的Schema
- 加载spring配置文件的工具类
- Spring中自动加载Hibernate配置文件
- spring加载配置文件三办法
- spring 中加载xml配置文件的方式.
- 通过ConfigurationSection来轻松地加载配置文件
- PHP - Smarty模板引擎 - Manual手册 - Chapter 7. Built-in Functions第7章 内建函数 - {config_load}用于从一个配置文件加载配置变量到模板中