流媒體資源
Unity 在構(gòu)建項(xiàng)目時(shí)將大多數(shù)資源整合到項(xiàng)目中。但是,將文件放入目標(biāo)計(jì)算機(jī)上的普通文件系統(tǒng)以使其可通過(guò)路徑名訪問(wèn)有時(shí)會(huì)很有用。這方面的一個(gè)例子是在 iOS 設(shè)備上部署電影文件;原始電影文件必須位于文件系統(tǒng)中的某個(gè)位置以便由?PlayMovie
?函數(shù)進(jìn)行播放。
Unity 會(huì)將放置在 Unity 項(xiàng)目中名為?StreamingAssets__(區(qū)分大小寫(xiě))的文件夾中的所有文件逐字復(fù)制到目標(biāo)計(jì)算機(jī)上的特定文件夾。要獲取此文件夾,請(qǐng)使用?Application.streamingAssetsPath?屬性。在任何情況下,最好使用?Application.streamingAssetsPath
?來(lái)獲取?StreamingAssets__ 文件夾的位置,因?yàn)樗偸侵赶蜻\(yùn)行應(yīng)用程序的平臺(tái)上的正確位置。
Application.streamingAssetsPath
?返回的位置因平臺(tái)而異:
大多數(shù)平臺(tái)(Unity Editor、Windows、Linux 播放器、PS4、Xbox One、Switch)使用?
Application.dataPath + "/StreamingAssets"
。macOS 播放器使用?
Application.dataPath + "/Resources/Data/StreamingAssets"
。iOS 使用?
Application.dataPath + "/Raw"
。Android 使用經(jīng)過(guò)壓縮的 APK/JAR 文件中的文件:
"jar:file://" + Application.dataPath + "!/assets"
。
要在無(wú)法直接訪問(wèn)流媒體資源文件的平臺(tái)(如 Android 和 WebGL)上讀取流媒體資源,請(qǐng)使用?UnityWebRequest。有關(guān)示例,請(qǐng)參閱?Application.streamingAssetsPath。
在許多平臺(tái)上,流媒體資源文件夾位置是只讀的;您不能在運(yùn)行時(shí)在這些位置修改或?qū)懭胄挛募U?qǐng)使用?Application.persistentDataPath?來(lái)獲取可寫(xiě)的文件夾位置。
注意:位于?StreamingAssets?文件夾中的 .dll 和腳本文件不參與腳本編譯。
也可以通過(guò)資源包 (Asset Bundle)?或可尋址資源 (Addressable)?來(lái)訪問(wèn)不屬于常規(guī)游戲構(gòu)建數(shù)據(jù)的內(nèi)容,在許多情況下,這些訪問(wèn)方式優(yōu)于流媒體資源 (Streaming Assets) 文件夾。
在運(yùn)行時(shí)加載資源