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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了