最近很忙,想写的 BLOG 都遗漏编写了
踩坑的时间比较多,充电的时间少了很多
为了减少以后自己填坑时间,随便简单的记录一下 搬砖日志
环境
unity : 2020.3.37f1
pipeline : brp
问题
因为之前搜索、购买、使用了各式各样的 LOD 插件、工具
发现这些工具基本上都是导出:*.asset 的网格文件
而且Mesh的 Read/Write = true
对主存负担是有所增加的
如下图
解决
为了节省运行时主存占用,我们的目标是导出的 Mesh 的 Read/Write = false
但是发现 Mesh
类是没有对应的方法设置
只有一个: Mesh.UploadMeshData(true);
的API
但是这个API不能满足我们的需求
我们目标是导出文件就是 Read/ Write = false
,如下图:
具体怎么做了,API又没有,Mesh.UploadMeshData(true);
只是针对运行时优化
然后让下面的小伙伴发现,可以通过修改:Mesh 导出的 *.asset 文件中对应的 m_IsReadable : 1
替换为:m_IsReadable : 0
即可,如下图
另一个曲线救国的方法 - FBX Exporter + ModelImporter.isReadable = false
首先在:Package Manager 中安装 FBX Exporter 插件
然后脚本中将:ModelExporter.ExportObject(GameObject obj, string path);
之后的资源,再通过 ModelImpoter
来设置 isReadable = false
属性的设置
ModelImporter mi = ...;
mi.isReadable = false;
但是之前的 方式更好用,这里就不建议使用这种曲线救国法了