目录
🟥下载、加载Bundle
要下载什么?
你打包一个资源CutscenesMovie.mp4(定义了其版本为1)到StreamingAssets文件夹下,一共生成了4个资源:
cutscenes.1
cutscenes.1.manifest
Win.manifest
Win
cutscenes.1大小最大,我们下载的也就是它。
下载分为两种:
1、从本地下载任意资源
2、从网络下载资源
1️⃣ 从本地下载加载资源
本地指的是StreamingAssets文件夹。该文件夹是只读文件夹。Bundle资源只能放在这,别的路径无法读取。
先读出来,再放到可读写文件夹 Application.persistentDataPath 。该路径内容不清空。只有在运行的时候本应用可读取
IEnumerator StartLoadBundle_IE()
{
yield return null;
//加载AssetBundle之前,先加载依赖的Bundle
//字符串"StreamingAssets",是一个文件。这个文件的名字,是根据 Skode_AssetBuilder 脚本,打包到哪个文件夹下,这个文件就叫什么名字。
//字符串"AssetBundleManifest",是固定写法。
AssetBundle assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "StreamingAssets"));
AssetBundleManifest manifest = (AssetBundleManifest)assetBundle.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
//字符串"cutscenes.1",是你要加载的视频AB包名字(带后缀名)
foreach (var item in manifest.GetAllDependencies("cutscenes.1"))
{
AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, item));
}
//------若要加载的文件只是一个视频或者其他,无依赖,可只做下面,直接加载Bundle文件,直接读Bundle即可------//
//从硬盘读取到Bundle——cutscenes.1
assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "cutscenes.1"));
//从Bundle——cutscenes.1中读取视频资源资源 CutscenesMovie
//字符串 CutscenesMovie ,是你给这个视频打AB包,这个视频的名字。可带可不带后缀名
video = assetBundle.LoadAsset<VideoClip>("CutscenesMovie.mp4");
videoPlayer.clip = video;
videoPlayer.Play();
}
2️⃣ 从网络下载加载资源
void Start()
{
//加载AssetBundle之前,先加载依赖的Bundle
//字符串"StreamingAssets",是一个文件。这个文件的名字,是根据 Skode_AssetBuilder 脚本,打包到哪个文件夹下,这个文件就叫什么名字。
//字符串"AssetBundleManifest",是固定写法。
AssetBundle assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "StreamingAssets"));
AssetBundleManifest manifest = (AssetBundleManifest)assetBundle.LoadAsset<AssetBundleManifest>("AssetBundleManifest");
//字符串"cutscenes.1",是你要加载的视频AB包名字(带后缀名)
foreach (var item in manifest.GetAllDependencies("cutscenes.1"))
{
AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, item));
}
//从硬盘读取到Bundle——cutscenes.1
assetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "cutscenes.1"));
//从Bundle——cutscenes.1中读取视频资源资源 CutscenesMovie
//字符串 CutscenesMovie ,是你给这个视频打AB包,这个视频的名字。可带可不带后缀名
video = assetBundle.LoadAsset<VideoClip>("CutscenesMovie.mp4");
videoPlayer.clip = video;
videoPlayer.Play();
}
大家还有什么问题,欢迎在下方留言!
如果你有 技术的问题 或 项目开发
都可以加下方联系方式
和我聊一聊你的故事🧡