Unity的StreamAssets文件夹
StreamAssets是一个特殊的文件夹,其中的内容在Unity打包的时候并不会被压缩,完整的带入包体
介绍
在做一个根据可变配置进行操作的功能时,突然发现在windows中正常的功能在mac上失效了,而且还是部分mac失效。发现StreamAssets在mac某个版本以上就不支持写操作了,搜了一下网上的资料才发现,在设计上StreamAsset就应该是只读的(太太,你也不想游戏的配置被修改吧)而Windows仍然有着写的能力,才导致了这个bug的产生。
方案
那如果我有一个默认配置,并且在游戏中想动态的修改它该怎么办呢。有一种解决方案是,当运行游戏的时候,将StreamAssets文件夹下需要写的内容复制一份到沙盒中Application.datapath,并对沙盒里的内容进行后续的读写操作,如果需要保存我们之前的操作,并不想覆盖,那就每次运行的时候先看沙盒中是否有该文件即可。
补充
而在实际工程中还需要实现版本更新功能,比如多了新的配置字段或是需要直接清空内容的时候,我们可以选择在配置文件中添加一个版本号或者清理字段,如果沙盒版本低于Stream版本则进行更新操作或是清理操作。后续的学习中发现很多游戏都是有首包解压逻辑的,这样也可以减少包体的大小。
参考
https://www.starloong.top/2022/03/13/%E5%85%B3%E4%BA%8EUnity%E7%9A%84StreamingAssets/index.html
https://blog.csdn.net/iningwei/article/details/89097130