今天突然想到这个路径Application.persistentDataPath,热更的重要路径,该文件夹可读可写,在移动端唯一一个可读写操作的文件夹。
移动端可以将本地的资源(资源MD5值配置表)等一些文件放到StreamingAssets文件夹下,通过运行时读取本地资源列表与服务器的资源列表文件比对,完成资源的热更。
为什么不在StreamingAsset文件夹下直接操作?因为该文件夹只读,不可写,资源无法更新进去,该文件夹 不可以使用 IO类接口操作(File.Exist,File.Read)。可以使用UnityWebRequest访问。
为什么不在persistentDataPath文件夹操作,因为该文件夹是apk安装以后,才会形成的一个文件夹,无法提前创建。
本来以为,persistentDataPath文件夹,是每次打开游戏,形成的,里面的数据是只在打开游戏期间临时保存,关闭游戏就会消除,今天做个小测试,原来该文件夹是安装完apk以后形成,里面的数据持久存在。
看一下测试demo:
public Text ShowText;
public Button WriteBtn, ReadBtn, QuitBBtn;
private void Start()
{
WriteBtn.onClick.AddListener(WriteEvent);
ReadBtn.onClick.AddListener(ReadEvent);
QuitBBtn.onClick.AddListener(QuitEvent);
}
private void WriteEvent()
{
StreamWriter st = File.CreateText(Application.persistentDataPath + "Test.txt");
st.Write("测试一下");
st.Close();
}
private void ReadEvent()
{
ShowText.text = File.ReadAllText(Application.persistentDataPath + "Test.txt");
}
private void QuitEvent()
{
Application.Quit();
}
先写入该文件夹一些内容,退出游戏,再次打开,从该文件夹读取,显示出来。
事实证明该文件夹数据一直存在。。。后面再整理一下热更的demo