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

zyo*_*neo 4 c# unity-game-engine

我对这两者之间的某些概念存有疑问。对于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();


    }
Run Code Online (Sandbox Code Playgroud)

adi*_*sib 7

一般来说,用于Application.persistentDataPath构建期间不可用且在分发后将被修改的数据(并且永远不应该由游戏更新修改),并用于Application.streamingAssetsPath构建之前存在的您希望能够读取的游戏数据游戏期间的 IO 系统(可能会在游戏更新中进行修改)。例如,玩家保存数据可能应该放置在 中Application.persistentDataPath,对话文件可能应该放置在 中Application.streamingAssetsPath

最大的技术区别在于,通常Application.persistentDataPath可以保存在与游戏数据分开的位置,因此游戏的卸载或更新不会导致玩家丢失数据。大多数区别在于意图,即Application.persistentDataPath旨在保存游戏运行之间的数据,并Application.streamingAssetsPath旨在允许开发人员拥有可以通过路径名访问的游戏文件。


如果您要存储正在跟踪的角色的当前位置、当前健康状况和当前状态,您将需要Application.persistentDataPath. 如果您要存储用于初始化的角色的起始位置、最大生命值和其他统计数据,那么Application.streamingAssetsPath会是更好的选择。