• unity读取过长textasset的写法


    textAst //动态获取的textasset

    //用流读取

    MemoryStream ms = new MemoryStream(textAst.bytes);
    StreamReader sr = new StreamReader(ms);
    while (sr.Peek() >= 0)
    {
    string lineContent = sr.ReadLine();

    if (string.IsNullOrEmpty(lineContent))
    break;
    GfLanguage gfLan = LanguageAnalysis(lineContent, true);
    if (!GameData.listLanguageInfo.ContainsKey(gfLan.id))
    GameData.listLanguageInfo.Add(gfLan.id, gfLan);

    }
    sr.Dispose();
    ms.Dispose();

    Resources.UnloadAsset(textAst);

    流式读写:

    可以这样理解。

    流式数据访问就像勤快的小弟,来了一点数据,就立马处理掉,立马分发到各个存储节点来响应分析、查询。

    与之相反的是,非流式数据访问,就像是职场混了多年的老油条,来了一点数据,懒得处理,等堆成一堆,再一起处理。等堆成一堆,处理完,再分发到各个存储节点,响应分析、查询。

    流式数据访问,就相当下载10G的电影,用迅雷边下边播的模式。

    非流式数据访问,就相当于,10G的电影,完全下好了,再播放。

    while (sr.Peek() >= 0)
    {

    }

    最近碰到一个问题,这种写法一般被放在协程里被主加载程序调用,有时会出现未读完就退出了,解决方法:添加标志位,主加载程序在标志位未制成true前一直等待。

    Load.cs:

    public static bool sucess = false;

    public void Load()

    {

    while (sr.Peek() >= 0)
    {

    ......

    }

    success = true;
    }

    Main.cs:

    if(!Load.successs)

    {

    yield return null;

    }

  • 相关阅读:
    linux 常用命令
    博客园兼容手机端
    博客园点击页面,显示句子
    win10 系统禁止自动更新
    php获取数组中第一个元素或最后一个元素
    设计模式
    高并发抢购
    mySql 数据库优化
    3dMax+VR的安装步骤
    3dmax
  • 原文地址:https://www.cnblogs.com/mcyushao/p/14705854.html
Copyright © 2020-2023  润新知