精华内容
下载资源
问答
  • AssetBundle

    2016-11-25 15:19:01
    AssetBundle
    转自:http://blog.csdn.net/poda_/article/details/50038117
    AssetBundle  打包
    
    using UnityEngine; 
    using System.Collections; 
    using UnityEditor; 
    /// <summary> 
    /// 脚本位置:Editor文件夹下 
    /// 脚本功能:打包 
    /// </summary> 
    public class CreateAssetBundle:Editor 
    { 
    //打包预制体 
    [MenuItem ("Assets/Build AssetBundle poda")] 
    static void BuildAssetsBundles () 
    { 
    BuildPipeline.BuildAssetBundles (Application.dataPath + "/AssetBundles"); 
    } 
    
    // 打包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(); 
    
    } 
    
    }

    AssetBundle  解包
    using UnityEngine;  
    using System.Collections;  
    /// <summary>  
    /// 脚本位置:需要加载物体的场景中任意物体上  
    /// 脚本功能:加载物体  
    /// </summary>  
    public class LoadAssetBundle : MonoBehaviour  
    {  
              
        private string url;  
        private string assetname;  
      
        void Start ()  
        {  
            url = "file://" + Application.dataPath + "/AssetBundles/player1.assetbundle";  
      
            // unity预制体名字  
            assetname = "poda";  
      
            StartCoroutine (Download ());  
        }  
      
        IEnumerator Download ()  
        {  
      
            WWW www = new WWW (url);  
            yield return www;  
            if (www.error != null) {  
                Debug.Log ("下载失败");  
      
            } else {  
                AssetBundle bundle = www.assetBundle;  
      
                // 加载的是预设体的名字,不是打包的assetbundle的名字  
                Object obj = bundle.LoadAsset (assetname);  
                Instantiate (obj,Vector3.zero,Quaternion.identity);  
                       
                    // AssetBundle.Unload(false),释放AssetBundle文件内存镜像,不销毁Load创建的Assets对象  
                            // AssetBundle.Unload(true),释放AssetBundle文件内存镜像同时销毁所有已经Load的Assets内存镜像  
                            bundle.Unload (false);  
            }  
      
            // 中断正在加载过程中的WWW  
            www.Dispose ();  
        }  
      
      
    }  

    
    

    解压场景

    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 ();  
        }  
      
    }  
    


    
    
    展开全文
  • assetbundle

    2018-05-08 10:55:32
    assetbundle demo
     assetbundle demo
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,600
精华内容 1,840
关键字:

assetbundle