【笔记】StreamingAssets

流媒体资源 - Unity 手册Unity 在构建项目时将大多数资源整合到项目中。但是,将文件放入目标计算机上的普通文件系统以使其可通过路径名访问有时会很有用。这方面的一个例子是在 iOS 设备上部署电影文件;原始电影文件必须位于文件系统中的某个位置以便由 PlayMovie 函数进行播放。https://docs.unity3d.com/cn/2020.3/Manual/StreamingAssets.htmlUnity 在build Project时会将大多数Assets合并到Project中。但是,将文件放入目标计算机上的普通文件系统——使它们可以通过路径名访问,有时是很有用的。(比如,在 iOS 设备上部署电影文件,原始电影文件必须位于文件系统中的某个位置,才能由 PlayMovie 函数进行播放。)

Unity 会将 Project 中名为 StreamingAssets(区分大小写)的文件夹中的所有文件逐字复制到目标计算机上的特定文件夹。要获取此文件夹,使用 Application.streamingAssetsPath 属性。无论何时,要获取 StreamingAssets 文件夹位置最好的方式就是使用 Application.streamingAssetsPath ,因为它总是指向应用程序正在运行的平台上的正确位置。

 Application.streamingAssetsPath 返回的位置因平台而异:

大多数平台 (Unity 编辑器、Windows、Linux 播放器、PS4、Xbox One、Switch) Application.dataPath + "/StreamingAssets"
macOS播放器 Application.dataPath + "/Resources/Data/StreamingAssets"
iOS Application.dataPath + "/Raw"
Android

使用经过压缩的 APK/JAR 文件中的文件:

"jar:file://" + Application.dataPath + "!/assets"

要在无法直接访问流媒体资源文件的平台(如 Android 和 WebGL)上读取流媒体资源,请使用 UnityWebRequest。有关示例,请参阅 Application.streamingAssetsPath

在许多平台上,StreamingAssets文件夹位置是只读的;您不能在运行时在这些位置修改或写入新文件。请使用 Application.persistentDataPath 来获取可写的文件夹位置。

注意:位于 StreamingAssets 文件夹中的 .dll 和脚本文件不参与脚本编译。

也可以通过资源包 (Asset Bundle) 或可寻址资源 (Addressable) 来访问不属于常规游戏构建数据的内容,在许多情况下,这些访问方式优于Streaming Assets 文件夹。

猜你喜欢

转载自blog.csdn.net/yjy99yjy999/article/details/122915221