博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d资源打包总结
阅读量:7237 次
发布时间:2019-06-29

本文共 1927 字,大约阅读时间需要 6 分钟。

http://www.manew.com/blog-33734-12973.html
unity 打包的时候会把下面几个文件资源打进apk或者ipa包里面
1. Asset下的所有脚本文件
2. Asset下所有引用的文件(比如 场景中直接使用到的资源)
3. (这里的resorces不是特指根目录下的Resources,也可以是子目录下的,只要文件夹名字叫Resources就可以)Resources文件夹下所有资源,这个文件夹下的资源无论是否被用到,都会被压缩打进包里面,程序中通过Resources.Load来加载
4 StreamingAssets。这个文件夹会不会被压缩,被原封不动地打进包,是个只读文件夹。有热更新的游戏,会把打包的assertbundle放在这个文件夹下,游戏开始的时候,会把这些assertbundle 拷贝到Application.persistentDataPath目录下(这个目录可以读写)。如果有新的资源,下载到的新assertbundle 会覆盖原来的资源。
5.Plugins 这个文件夹只能是Assets文件夹的直接子目录。它是用来放native插件的
 
关于assertbundle,unity  提供了BuildPipeline.BuildAssetBundles方法,我们可以用BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies()处理资源依赖关系。比如:
//公共的关联性素材绑定
     A  BuildPipeline.PushAssetDependencies();
        assetfile = assetPath + "shared" + AppConst.ExtName;
        mainAsset = LoadAsset("UI/Shared/Atlas/Dialog.prefab");
        addis = new Object[3];
        addis[0] = LoadAsset("Atlas/BattleAtlas.prefab");
        addis[1] = LoadAsset("Atlas/CardAtlas.prefab");
        addis[2] = LoadAsset("Atlas/DialogAtlas.prefab");
 
BuildPipeline.BuildAssetBundle(mainAsset, addis, assetfile, options, target);
///生成LoginPanel素材绑定
  B     BuildPipeline.PushAssetDependencies();
        mainAsset = LoadAsset("UI/Login/Prefabs/LoginPanel.prefab");
        assetfile = assetPath + "login" + AppConst.ExtName;
        BuildPipeline.BuildAssetBundle(mainAsset, null, assetfile, options, target);
    C    BuildPipeline.PopAssetDependencies();
///生成BattlePanel素材绑定
    D  BuildPipeline.PushAssetDependencies();
        mainAsset = LoadAsset("UI/Battle/Prefabs/BattlePanel.prefab");
        assetfile = assetPath + "battle" + AppConst.ExtName;
        addis = new Object[1];
        addis[0] = LoadAsset("UI/Battle/Prefabs/UICard.prefab");
        BuildPipeline.BuildAssetBundle(mainAsset, addis, assetfile, options, target);
    E    BuildPipeline.PopAssetDependencies();
    F
 BuildPipeline.PopAssetDependencies();
 
A和F对应  B和C对应  D和E对应,说明LoginPanel和BattlePanel资源会用到公共资源shared的。
 
 提供了自动处理依赖关系,不过每个资源都需要在编辑器上手动设置assetbundleName。

转载于:https://www.cnblogs.com/quansir/p/6380971.html

你可能感兴趣的文章
atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
查看>>
《SQL Server企业级平台管理实践》读书笔记——SQL Server中关于系统库Tempdb总结...
查看>>
如何提高SELECT的效率
查看>>
Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵
查看>>
scala编程第17章学习笔记(1)——集合类型
查看>>
重构if...else...或者switch程序块
查看>>
模板继承
查看>>
Provide your license server administrator with the following information.error code =-42,147
查看>>
careercup-递归和动态规划 9.4
查看>>
设置Ubuntu Mysql可以远程链接
查看>>
ZooKeeper学习第八期——ZooKeeper伸缩性
查看>>
boost 源码编译 的 Makefile.am写法备份
查看>>
移动端图表插件jChart.js的修改
查看>>
MVC Controller return 格式
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
JQuery实现密码有短暂的显示过程和实现 input hint效果
查看>>
Kooboo中如何切换数据库(注意:如果切换数据库,需要Kooboo中没有一个website 否则会报错数据库中没有表之类的)...
查看>>
OWIN规范中最让人费解的地方
查看>>
页面视图中的按钮操作指向
查看>>
Android UI开发第三十篇——使用Fragment构建灵活的桌面
查看>>