【发布时间】:2020-10-21 15:49:42
【问题描述】:
我将 StreamingAssets 用于我的 Android 游戏, 并希望在安装 APK 后在 StreamingAssets 文件夹中添加文件, 但是我不知道这个文件夹的位置在哪里。
你能帮帮我吗?
【问题讨论】:
我将 StreamingAssets 用于我的 Android 游戏, 并希望在安装 APK 后在 StreamingAssets 文件夹中添加文件, 但是我不知道这个文件夹的位置在哪里。
你能帮帮我吗?
【问题讨论】:
您无法在构建后添加或修改流资产文件夹内的文件,因为在几乎所有平台上,该目录都是只读。来自the docs:
在许多平台上,流媒体资产文件夹位置是只读的;您不能在运行时在那里修改或写入新文件。将 Application.persistentDataPath 用于可写的文件夹位置。
也就是说,在 Android 上,流媒体资产的文件路径位于 "jar:file://" + Application.dataPath + "!/assets,来自同一文档:
Android 使用压缩 APK 中的文件 /JAR 文件,"jar:file://" + Application.dataPath + "!/assets"。
请注意,您不能通过标准 C# File 函数访问此文件位置,但需要使用 webrequest 访问它。
如果您需要在运行时存储数据的目录,则需要改用Application.persistenDataPath。
来自the docs:
此值是一个目录路径,您可以在其中存储要在两次运行之间保留的数据。在 iOS 和 Android 上发布时,persistentDataPath 指向设备上的公共目录。此位置的文件不会被应用更新删除。文件仍然可以被用户直接删除。
【讨论】:
构建后不要这样做。
在 Unity Editor 的 Assets/ 目录中创建 StreamingAssets 目录,并在其中添加所有文件。它们将自动包含在构建中。
如果您因为 Play 商店的 .apk 大小限制而需要此文件,那么您可以创建一个包含所有其他资产(包括 SteamingAssets 目录中的资产)的 .obb 文件。在这里查看 - https://docs.unity3d.com/Manual/android-OBBsupport.html。
【讨论】: