zoukankan      html  css  js  c++  java
  • 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 ();
        }
    
    }
  • 相关阅读:
    commonjs promise/A 规范
    Java之抽象类
    Java中多态的用法
    Java之方法的重写
    Java中static的用法
    java中this的用法
    Java概述
    二叉排序树的创建、插入、删除
    常用排序算法
    LeetCode小白菜笔记[2]:Reverse Integer
  • 原文地址:https://www.cnblogs.com/unity3ds/p/5899450.html
Copyright © 2011-2022 走看看