Asset Bundle工作流程及人物换装实例 – 刘刚
Unity内部的资源有两种(斯斯有两种?):
Resources:有10年历史,尽量用Asset Bundle
Asset Bundle:昵称AB,现今Unity处理资源的中心
AB选项的差异
透过Web Player下载Asset Bundle的Cache需要收费,在iOS,Android的Cache不需收费。—>手持游戏卯起来用!!!
浏览器本身也有Cache,为什麽要用Unity的Cache?
因为存在Cache里面是解压状态,下次调用不需再解压一次,大省CPU时间。
Unity会管理Cache大小,压缩档案解压後会丢掉。
Browser就只能存压缩状态的Asset Bundle,而且位置每种Browser都不同。–>有付钱有差AssetBundle.CreateFromMemory:大多数用在对内容作加解密,无法Cache,也就是每次执行都要下载一次,Script也可加密
AssetBundle.CreateFromFile
AssetBundle.Load与Application.Load的差异,Application.Load只能Load StreamAsset里面的东西。
每开一个www用来下载AssetBundle,就要用掉8MB的Buffer,所以www下载完要作以下动作来清掉那8M:
WWW.Dispose
AssetBundle.Unload(false)
Resources.UnloadUnusedAsset
Resources.UnloadUnusedAsset
AssetBundle可以作Dependency!!!
BuildPipeline.PushAssetDependencies,把资源推进去
BuildPipelinePopAssetDependencies,把资源弹出来
BuildPipelinePopAssetDependencies,把资源弹出来
假设Push以下资源:A,B,C,透过Push&Pop,可以产生3个Packege,C依赖B,A,B依赖A,A独立的Asset Bundles,完全不会重复包资源!
在一个Prefab里面会有Mesh,Material,Shader,Texture,Script,都应该分开包,Load的时候再按照顺序Load回来&
在一个Prefab里面会有Mesh,Material,Shader,Texture,Script,都应该分开包,Load的时候再按照顺序Load回来&