Assetbundle打包

作者:雨辰 发布于:2014-11-20 9:57 Thursday 分类:Unity3D

一、简介

Unity的Assetbundle是Unity Pro提供的功能。

理解:Asset 资源,资产;Bundle :包,一批,捆;字面上的意思,就是把资源打包。

在项目中怎么使用Assetbunlde呢?

答:我们的项目分为两个工程:Art和Client。其中Art工程,把Prefab打包成AssetBundle及拼接美术资源,Client工程读取AssetBundle及游戏逻辑;

二、Art

下面这张是Art工程下的自定义编辑器功能,菜单栏 Game/资源打包/打包 XXX

image

下是是Project截图,可以看到在Product目录下,有按规则命名的文件夹。菜单栏的功能就是打包这些目录下的Prefab,例如:执行 Game/资源打包/打包Actors ,就是把 项目工程路径/Assets/Product/Actor/* 打包成Assetbundle

image

当打包完之后,所有的AssetBundle都存放在Product\AssetBundles\[Android][IOS[Win32] (注:在打包时需注意Assetbundle有运行平台之分

image

 

三、Client

Client工程主要的是Code,负责游戏的逻辑。

下面是Client的Project截图(注:StreamingAssets下的是当前运行平台AssetBundle快捷方式

image

四、资源更新

      由于移动平台上不能更新脚本,也就Prefab上绑定的脚本是不会被执行的。但是如果本地工程有同样的脚本,那么Unity会自动将这个脚本绑定在下载的Prefab上,并且他们执行的非常好。

如果本地工程中没有Prefab上的脚本,那么这个脚本是永远不会执行的。

      比如:Box1.Prefab和Coin1.Prefab同样引用CBonesObject.cs,但是某些Public的变量值不一样,打包Assetbundle也是没有问题的,一样可以识别的很好。

image

 

Art工程里Prefab上绑定了脚本CBonesObject.cs

image

 在Client工程同样有CBonesObject.cs,CBonesManager.cs 脚本

image

 

这样当下载完了Box1的Assetbundle,它上面绑定的脚本在Client存在,这个脚本就一样可以正常执行了(包括IOS平台也能正常执行)

标签: Unity3D-Editer

发表评论:

雨辰 joyimp|@2011-2018 京ICP备16030765号