Unity5版本的AssetBundle打包方案之打包Scene场景

using UnityEngine;
using System.Collections;
using UnityEditor;
/// <summary>
/// 脚本位置:Editor文件夹下
/// 脚本功能:打包
/// </summary>
public class CreateAssetBundle:Editor
{
    // 打包unity场景文件
    [MenuItem("Assets/Build AssetBundle Scene")]
    static void MyBuild(){
        // 需要打包的场景名字
        string [] levels =  {"Assets/2.unity"};
        // 注意这里【区别】通常我们打包,第2个参数都是指定文件夹目录,在此方法中,此参数表示具体【打包后文件的名字】
        // 记得指定目标平台,不同平台的打包文件是不可以通用的。最后的BuildOptions要选择流格式
        BuildPipeline.BuildPlayer(levels, Application.dataPath+"/Scene.unity3d", BuildTarget.Android, BuildOptions.BuildAdditionalStreamedScenes);
        // 刷新,可以直接在Unity工程中看见打包后的文件
        AssetDatabase.Refresh();

    }

}
using UnityEngine;
using System.Collections;

/// <summary>
/// 脚本位置:需要加载物体的场景中任意物体上
/// 脚本功能:加载物体
/// </summary>
public class LoadAssetBundle : MonoBehaviour
{

    private string url;
    private string assetname;

    void Start ()
    {
        // 下载压缩包,写出具体的名字
        url = "file://" + Application.dataPath + "/Scene.unity3d";

        // unity预制体名字,即被打包的场景名字叫 2
        assetname = "2";

        StartCoroutine (Download ());
    }

    IEnumerator Download ()
    {

        WWW www = new WWW (url);
        yield return www;
        if (www.error != null) {
            Debug.Log ("下载失败");
        } else {
            AssetBundle bundle = www.assetBundle;
            Application.LoadLevel ("2");
            print ("跳转场景");
            // AssetBundle.Unload(false),释放AssetBundle文件内存镜像,不销毁Load创建的Assets对象
            // AssetBundle.Unload(true),释放AssetBundle文件内存镜像同时销毁所有已经Load的Assets内存镜像
            bundle.Unload (false);
        }

        // 中断正在加载过程中的WWW
        www.Dispose ();
    }

}
时间: 2024-10-08 05:21:37

Unity5版本的AssetBundle打包方案之打包Scene场景的相关文章

Gradle实战:Android多渠道打包方案汇总

查看原文:http://blog.csdn.net/u010818425/article/details/52319382 Gradle实战系列文章: <Gradle基本知识点与常用配置> <Gradle实战:不同编译类型的包同设备共存> <Gradle实战:发布aar包到maven仓库> <Gradle实战:执行sql操作hive数据库> 本文将延续之前几篇博客的风格,先从基本概念入手,这有助于我们对后文的理解: 在后续的代码中如果忘了某个概念的具体意义,

Unity5 Assetbundle简单使用 及 打包Material文件超大的问题

因为项目中要用到ULUA,而ULUA的Demo 中用到的是 Unity5的Assetbundle 打包方式,所以还是学习下 5.0 版本的Assetbundle 打包方式. 简单的来说,Unity5中新添加的 AB 打包,和我们平时使用的方式一样,原理就是 为每个文件创建一个依赖文件,然后汇总到一个总的依赖文件中,在游戏最开始运行的时候需要加载这个 总的依赖文件,然后加载 Assetbundle的时候,从中获取到依赖关系来加载依赖. Unity5的打包Assetbundle API使用起来很方便

Unity AssetBundle共享资源打包/依赖资源打包

依赖性打包 依赖性打包的作用在于避免资源冗余,同时提高资源加载和卸载的灵活性,其重要性不言而喻.在4.x版本的AssetBundle打包系统中,涉及一对 BuildPipeline.PushAssetDependencies和BuildPipeline.PopAssetDependencies接口,从官方文档中可以大致了解其用法:http://docs.unity3d.com/ScriptReference/BuildPipeline.PushAssetDependencies.html 可以简

JS 模块化和打包方案收集

1.这里想讨论的是拆分规则,不是在问哪个工具怎么使用.2.这里没有在想找正确答案,因为感觉这个问题要结合具体业务场景. 随着项目开发越来越大,一开始代码全打包到一个文件的方式,让文件越来越大,接下来要做拆分,可具体的拆分规则又不是很熟悉,或者说,我没有一个很好的方案,所以想到这是一个值得讨论的话题,想提问的形式拿出来,请各位大神有这方面接触的分享一下自己的经验. 这个问题有一定局限性,因为不同的业务场景,可能拆分方式还有不同,所以,可否想讨论的朋友能把具体的业务场景细说一下,再结合具体业务场景给

Android 多渠道打包方案

常规Build 我们先来回顾一下通过Ant或者Gradle进行多渠道批量打包,通常是在AndroidManifest中配置: <meta-data android:name="CHANNEL" android:value="xxx" /> meta-data通过配置value来动态改变渠道名称,然后我们可以在代码中这样去获取Channel private String getChannelNameFromManifest(){ try { return

Unity3D 5.3 新版AssetBundle使用方案及策略

1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代.因此,本文的主要内容就是分析5.X版本的AssetBundle机制(包括创建资源包.压缩资源包.加载资源包和从资源包中加载/卸载资源等几个方面)及其关键的API使用方式并总结一些对项目的建议(例如根据不同的情景,选择不同的包体加载方案等等). 回到目录 2.AssetBundle系统的新功能 本小节包括: Asset

Unity5新的AssetBundle系统使用心得

Unity的AssetBundle系统是对资源管理的一个扩展,动态更新,网页游戏,资源下载都是基于AssetBundle系统的.但是不得不说,这个系统非常恶心,坑很深.至于有多深,请看这篇文章: http://www.cnblogs.com/ybgame/p/3973177.html 原先的AssetBundle系统需要自己写一大坨导出的代码(BuildPipeline),这个新手会无从下手,老手也经常会被坑到.想正确处理好资源的依赖关系从而保证资源完整而又不会产生重复资源,确实不是一件非常容易

webpack打包和gulp打包工具详细教程

30分钟手把手教你学webpack实战 阅读目录 一:什么是webpack? 他有什么优点? 二:如何安装和配置 三:理解webpack加载器 四:理解less-loader加载器的使用 五:理解babel-loader加载器的含义 六:了解下webpack的几个命令 七:webpack对多个模块依赖进行打包 八:如何独立打包成样式文件 九:如何打包成多个资源文件 十:关于对图片的打包 十一:React开发神器:react-hot-loader 回到顶部 什么是webpack? 他有什么优点?

6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩

- 6.5 zip压缩工具 - 6.6 tar打包 - 6.7 打包并压缩 #  6.5 zip压缩工具 - zip压缩工具可以压缩目录 - 压缩目录需要用zip -r ``` [[email protected] d6z]# ls 1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  aminglinux [[email protected] d6z]# zip -r aming.zip 3.txt aminglinux adding: 3.txt (defla