[基础知识] unity3d 资源打包接口

保护内容
Unity允许用户使用AssetBundle.CreateFromMemory从一个 byte[]数组中建立一个AssetBundle的对象。在运行时传输和解密之前,可以用这种加密方法来提高安全性和保护用户建立的资源包中内容。
string url = “http://www.xxxxxxxxxxxxxxxx”;
IEnumerator Start () {
// Start a download of the given URL
WWW www = new WWW (url);
// Wait for download to complete
yield return www;
// Get the byte data
byte[] encryptedData = www.bytes;
// Load the TextAsset object
byte[] decryptedData =YourDecryptionMethod(encryptedData);
// Create an AssetBundle from the bytes array
AssetBundle bundle =AssetBundle.CreateFromMemory(decryptedData);
// You can now use your AssetBundle
}
有三个类方法可以用来构建资源包
BuildPipeline.BuildAssetBundle,
BuildPipeline.BuildStreamedSceneAssetBundle
BuildPipeline.BuildAssetBundleExplicitAssetNames
BuildPipeline.BuildAssetBundle 可以构建任意类型资源的资源包。
【创建一个压缩好的包含Assets下的所有资源文件.Unity3d。可以包含是项目目录下的任意资源,而把所有的资源压缩成一个.Unity3d的文件,这个文件包括所有的预置物体(prefabs),纹理贴图(textures),模型,动画。使用AssetBundle.mainAsset这个函数可以很方便的让你指定一个定义好的物体。被压缩的资源储存在pathName. Options,会自动的允许用户包含相关的或者需要用到的】
BuildPipeline.BuildStreamedSceneAssetBundle 用来当你希望只包括流场景,使数据加载变为可用。
【建立一个或多个场景,这些场景所需要的所有资源将被压缩入资源包,即asset bundle里面。资源包中的场景文件可以在任何平台上建立,而且这些文件往往是以一个单一的Unity3d文件格式被用来创建。使用WWW类可以下载场景文件。当场景文件被下载好可以使用WWW.LoadFromCacheOrDownload来加载下载好的场景文件。】
BuildPipeline.BuildAssetBundleExplicitAssetNames 和BuildPipeline.BuildAssetBundle类似,但是有额外的参数来指定每个物体的自定义的字符串(名字)。
【建立一个自定义名字的资源包方法: 创建一个包含所有资源的一个压缩好的Unity3d文件。AssetBundle可以包括任何项目目录下的资源文件。在assetNames参数中提供一个与资源数目相同大小的字符串数组。在资源数组中存储的信息与资源文件名相同,可以传递AssetBundle.Load去加载一个指定的资源。使用BuildAssetBundle时,只需使用资源的路径名。压缩好的资源包文件将会被储存在pathName. Options,允许用户自动包含与之相关的或者总是包含完整的资源去代替确切的参照物体。】
当使用上面的三个函数做完准备工作,我们现在就需要去下载这些资源然后加载它们。
>>相关产品






