zoukankan      html  css  js  c++  java
  • 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;

    }

  • 相关阅读:
    js库链接
    小程序实现textarea行数自动增加
    小程序中公告消息自动向左滚动(关闭三次之后不再提示公告信息)
    jQuery实现点击div外的区域,来隐藏指定节点
    Unity AssetBundle爬坑手记
    换装demo随手记
    Untiy PoolManager随手记
    unity常用插件
    Untiy一些方法前特殊标签记录
    Unity网格合并_材质合并
  • 原文地址:https://www.cnblogs.com/mcyushao/p/14705854.html
Copyright © 2011-2022 走看看