12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 8489|回复: 11

[教程] unity动态数据管理教程—AssetBundles

[复制链接]

25

主题

5

听众

358

积分

设计实习生

Rank: 2

纳金币
300
精华
0

最佳新人

发表于 2013-3-6 16:48:32 |显示全部楼层
unity动态数据管理教程—AssetBundles在我们做游戏的时候,往往需要加载大容量的数据文件,其中包括模型、材质、贴图、特效等资源。这些资源组成了游戏场景,多个游戏场景就组成了我们的游戏了。这些加在一起数据量非常大,对于良好的人机交互体验而言,让用户处于长时间的等待,是一种非常差的体验感,很多用户很可能就是因为没有耐心等待,就直接关闭你的应用,离开。  所以,做任何的项目之前,必须要先解决场景数据管理的问题。unity3d是通过AssetBundles的外部整合数据,其实就是将我们做好的unity场景以一种特定的.unity文件存储的服务器上,然后根据需要有选择的加在他们,这样就避免游戏一开始要加载大量的场景。而是可以一边玩游戏一边加载。   下面演示创建AssetBundles的过程和方法:在AssetBundles中,共有三种方法来创建数据资源。o    BuildPipeline.BuildAssetBundle, 可以创建任意类型的的资源包,这是一个压缩好的,包含所有预置物(prefabs)、贴图、模型和动画信息的unity3d文件。 o    BuildPipeline.BuildStreamedSceneAssetBundle,用来创建数据流文件,是数据远程加载的方法,利用这种方法建立的数据文件,通常是一个单一的unity3d文件。使用WWW类来进行传输,加载完毕后使用WWW.LoadFromCacheOrDownload来加载下载好的场景文件。 o    BuildPipeline.BuildAssetBundleExplicitAssetNames,这种方法同BuildPipeline.BuildAssetBundle类似,但是提供额外的参数来指定每个物体的自定义的字符串(名字)。 好吧,下面就具体制作了,创建一个c#文件。命名为ExportAssetBundles,并输入如下代码:// C# Example // Builds an asset bundle from the selected objects in the project view. // Once compiled go to "Menu" -> "Assets" and select one of the choices // to build the Asset Bundle   using UnityEngine; using UnityEditor;   public class ExportAssetBundles { [MenuItem("Assets/Build AssetBundle From Selection - Track dependencies")] static void ExportResource () { // Bring up save panel string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d"); if (path.Length != 0) { // Build the resource file from the active selection. Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets); BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets); Selection.objects = selection; } } [MenuItem("Assets/Build AssetBundle From Selection - No dependency tracking")] static void ExportResourceNoTrack () { // Bring up save panel string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d"); if (path.Length != 0) { // Build the resource file from the active selection. BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, path); } } }该脚本必须存储在unity3d项目(Project)面板的Editor目录下。这时候,在菜单Assets中,我们会发现多了两项新的菜单列表。 1.Build AssetBundle From Selection - Track dependencies,顾名思义,它能通过当前选中的物体创建AssetBundles数据资源,并且该数据资源包含所有的关联物体。比如,子物体和其他组件(components)。 2.Build AssetBundle From Selection - No dependency tracking,很明显,这种方法同上面是相对应的,它不包含关联物体,而仅仅输出选中物体本身。下面我们制作一个简单的场景,并将其保存的一个Prefabs中:然后在Prefabs文件夹上点击右键,选择.Build AssetBundle From Selection - Track dependencies导出.unity文件。存储在G盘目录(这个地址可以自己选择)这样.unity文件就生成出来了。下面看下简单的调用。新建一个JS文件。命名为Myasset。输入一下代码:function Start () {    //开始下载    var www = WWW ("file:///G://New Resource.unity3d");    //等待下载完成       yield www;    print(www);    //获取指定的主资源并实例化    Instantiate(www.assetBundle.mainAsset);    }www为你的.unity的存储路径。运行游戏,就可以调用成功了。
回复

使用道具 举报

733

主题

5

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
6520
精华
14

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

发表于 2013-3-6 18:07:28 |显示全部楼层
希望楼主能加入一下应用的案例,这样更容易理解,谢谢了!
回复

使用道具 举报

Sora    

0

主题

1

听众

86

积分

设计初学者

Rank: 1

纳金币
4
精华
0

活跃会员 灌水之王

发表于 2013-3-9 09:13:32 |显示全部楼层
必須支持版主奉獻的精神

回复

使用道具 举报

Sora    

0

主题

1

听众

86

积分

设计初学者

Rank: 1

纳金币
4
精华
0

活跃会员 灌水之王

发表于 2013-3-20 19:18:47 |显示全部楼层
簡單易懂 學習了唷!!!
回复

使用道具 举报

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53456
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

发表于 2013-6-28 19:56:46 |显示全部楼层
学习学习,,很不错的说明!
回复

使用道具 举报

10

主题

8

听众

1866

积分

助理设计师

Rank: 4

纳金币
187
精华
0

活跃会员

发表于 2014-2-7 16:21:35 |显示全部楼层
这个很不错啊。。
回复

使用道具 举报

0

主题

1

听众

5366

积分

高级设计师

Rank: 6Rank: 6

纳金币
50
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

发表于 2014-2-7 22:51:19 |显示全部楼层
好东西呀,谢谢楼主了!
我的个人主页:
http://www.bliand.com
回复

使用道具 举报

0

主题

1

听众

287

积分

设计实习生

Rank: 2

纳金币
1
精华
0

最佳新人

发表于 2014-2-12 08:46:33 |显示全部楼层
很好的东西,详细学习下
回复

使用道具 举报

2

主题

9

听众

6387

积分

高级设计师

Rank: 6Rank: 6

纳金币
881
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

发表于 2014-2-12 13:07:06 |显示全部楼层
学习了,感谢
回复

使用道具 举报

0

主题

1

听众

1198

积分

助理设计师

Rank: 4

纳金币
261
精华
0
发表于 2014-2-12 14:50:10 |显示全部楼层
谢谢楼主分享
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-4-18 11:22 , Processed in 0.097744 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部