Version: 2021.3

AssetBundle.LoadFromMemory

切换到手册
public static AssetBundle LoadFromMemory (byte[] binary, uint crc);

参数

binary 包含 AssetBundle 数据的字节数组。
crc 未压缩内容的 CRC-32 校验和(可选)。如果该参数不为零,则加载前将内容与校验和进行比较,如果不匹配则给出错误。

返回

AssetBundle 已加载的 AssetBundle 对象,如果失败则为 null。

描述

从内存区域同步创建 AssetBundle。

使用该方法可从一个字节数组创建 AssetBundle。当您下载了加密数据并需要从未加密的字节创建 AssetBundle 时,这非常有用。

LoadFromMemoryAsync 相比,该版本是同步的,将等待 AssetBundle 对象创建完毕才返回。

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class ExampleClass : MonoBehaviour { byte[] MyDecription(byte[] binary) { byte[] decrypted = new byte[1024]; return decrypted; }

IEnumerator Start() { var uwr = UnityWebRequest.Get("https://myserver/myBundle.unity3d"); yield return uwr.SendWebRequest(); byte[] decryptedBytes = MyDecription(uwr.downloadHandler.data); AssetBundle.LoadFromMemory(decryptedBytes); } }