乐趣区

关于unity3d:C速成指南从入门到进阶实战WPF与Unity3D开发

download:C# 速成指南:从入门到进阶,实战 WPF 与 Unity3D 开发

备:https://www.97yrbl.com/t-1374…

浅谈 AB 包

Unity 资源管理
在 Unity 中,一般来说,资源加载形式次要分为 Resources 加载和 AssetBundle 加载。

Unity 有个非凡文件夹 Resources,放在这个文件夹下的资源能够通过 Resources.Load() 来间接加载。即 Resources 加载资源形式。

当取得 AssetBundle 之后,也能够调用 AssetBundle 对应的 API 来加载资源。

什么是 AB 包

AB 包全名 AssetBundle(资源包)。是一种 Unity 提供的用于寄存资源的包。通过将资源散布在不同的 AB 包中能够最大水平地缩小运行时的内存压力,并且能够有选择地加载内容。

为什么要用 AB 包

1、热更新。(要热更新须要确保 AB 包打进去的资源具备唯一性,且雷同资源的 AB 包检验码雷同。)

2、Resources加载尽管简略不便,然而也有很多问题:

对内存治理造成肯定的累赘。
在关上利用时加载工夫很长。
Resources 文件夹下的所有资源对立合并到一个序列化文件中(能够看成对立打一个大包,巨型 AB 包有什么问题它就有什么问题),对资源优化有肯定的限度。
不倡议大量应用 Resources。
应用办法

打 AB 包:

public static AssetBundleManifest BuildAssetBundles(string outputPath, BuildAssetBundleOptions assetBundleOptions, BuildTarget targetPlatform);

  • 1

BuildAssetBundleOptions枚举类型的值转化为二进制都是只有一位是 1,其余位都是 0。如 UncompressedAssetBundle 是 0000 0000 0001,IgnoreTypeTreeChanges 是 0000 0100 0000,DisableLoadAssetByFileName 是 1000 0000 0000。

BuildAssetBundles底层会对传入的 BuildAssetBundleOptions 值进行解决,依据二进制位数来判断应用哪种策略构建 AB 包。因而如果在构建 AB 包时想要应用多种策略,用 & 连贯即可。

BuildTarget 参数用来抉择针对的平台,因为 AB 包 在不同平台下是不兼容的。

设置资源 AB 包名:

`AssetImporter.assetBundleName // AB 包名
AssetImporter.assetBundleVariant // AB 包变体名 ` 

获取 AB 包办法:

`AssetBundle.LoadFromFile(string path)
AssetBundle.LoadFromFileAsync(string path)
AssetBundle.LoadFromMemory(byte[] binary)
AssetBundle.LoadFromMemoryAsync(byte[] binary)
AssetBundle.LoadFromStream(Stream stream)
AssetBundle.LoadFromStreamAsync(Stream stream)
WWW.assetBundle` 
退出移动版