Application.streamingAssetsPath和Application.persistentDataPath有什么区别?如何使用?

时间:2018-12-31 08:21:40

标签: c# unity3d

我对这两者之间的某些概念有疑问。对于Application.streamingAssetsPath,我应该在项目中创建一个StreamingAssets文件夹,以便可以将文件保存到该文件夹​​中,然后在以后重新加载它。Application.persistentDataPath的作用是什么和Application.streamingAssetsPath的作用?

如果我要保存资产和数据(位置,健康状况等),然后再将它们重新加载到移动设备(Android和IOS)和PC中,哪个是最好的选择?

下面,我使用Application.streamingAssetsPath保存

using (FileStream fs = new FileStream(Application.streamingAssetsPath + "/Position.json", FileMode.Create))
    {
        BinaryWriter filewriter = new BinaryWriter(fs);
        filewriter.Write(JsonString);
        fs.Close();


    }

1 个答案:

答案 0 :(得分:1)

通常,将Application.persistentDataPath用于在构建期间不可用的数据,这些数据将在分发后进行修改(并且永远不应通过游戏更新进行修改),对于数据需要使用Application.streamingAssetsPath您希望在游戏期间可以使用IO系统读取的版本之前存在(并且可能会在游戏更新中进行修改)。例如,玩家保存的数据可能应该放在Application.persistentDataPath中,而对话文件可能应该放在Application.streamingAssetsPath中。

最大的技术差异在于,通常Application.persistentDataPath可以保存在与游戏数据不同的位置,因此,卸载或更新游戏不会导致玩家丢失其数据。大部分差异是在意图上的,因为Application.persistentDataPath用于保存游戏运行之间的数据,而Application.streamingAssetsPath旨在允许开发人员拥有可以通过路径名访问的游戏文件。 / p>


如果要存储要跟踪的角色的当前位置,当前健康状况和当前状态,则需要Application.persistentDataPath。如果要存储用于初始化的字符的起始位置,最大健康状况和其他统计数据,则Application.streamingAssetsPath是一个更好的选择。