纳金网

标题: AssetBunldes打包程序代码 [打印本页]

作者: 狂风大尉    时间: 2014-6-26 20:27
标题: AssetBunldes打包程序代码
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;
  4. using System.IO;
  5. /*
  6. * 這只是打包assetBunldes的編輯項目
  7. * androidr使用就要使用forAndroid結尾的項目打包
  8. * 電腦上要使用的則不用
  9. * IOS目前無需求
  10. * 以下是全打包及單一打包差別
  11. * BuildPipeline.BuildAssetBundle (obj, null, targetPath, BuildAssetBundleOptions.CollectDependencies,BuildTarget.Android)
  12. * BuildPipeline.BuildAssetBundle (null, SelectedAsset, Path, BuildAssetBundleOptions.CollectDependencies,BuildTarget.Android)
  13. * */
  14. public class CreateAssetBunldes : MonoBehaviour
  15. {
  16.     [MenuItem("yuchiHelper/CreateAssetBunldesMain")]
  17.     static void CreateAssetBunldesMain ()
  18.     {
  19.         //取得在Project中選擇的所有對象
  20.         Object[] SelectedAsset = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets);
  21.         //遍歷這個選擇到的對象
  22.         foreach (Object obj in SelectedAsset)
  23.         {
  24.             string sourcePath = AssetDatabase.GetAssetPath (obj);
  25.             //将Assetbundle放在AssetBundles文件夹下,如果没有就創建一個
  26.             //AssetBundles是只是路徑
  27.             //網路下载:就不需要放在這裡。
  28.             string Path = Application.dataPath + "/AssetBundles/" + obj.name + ".assetbundle";
  29.             if (BuildPipeline.BuildAssetBundle (obj, null, Path, BuildAssetBundleOptions.CollectDependencies))
  30.             {
  31.                 Debug.Log(obj.name +"打包成功");
  32.             }
  33.             else
  34.             {
  35.                 Debug.Log(obj.name +"打包失敗");
  36.             }
  37.         }
  38.         //刷新
  39.         AssetDatabase.Refresh ();   
  40.     }
  41.     [MenuItem("yuchiHelper/CreateAssetBunldesMainForAndroid")]
  42.     static void CreateAssetBunldesMainForAndroid ()
  43.     {
  44.         Object[] SelectedAsset = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets);
  45.         foreach (Object obj in SelectedAsset)
  46.         {
  47.             string sourcePath = AssetDatabase.GetAssetPath (obj);
  48.             string Path = Application.dataPath + "/AssetBundles/" + obj.name + ".assetbundle";
  49.             if (BuildPipeline.BuildAssetBundle (obj, null, Path, BuildAssetBundleOptions.CollectDependencies,BuildTarget.Android))
  50.             {
  51.                 Debug.Log(obj.name +"打包成功");
  52.             }
  53.             else
  54.             {
  55.                 Debug.Log(obj.name +"打包失敗");
  56.             }
  57.         }
  58.         AssetDatabase.Refresh ();
  59.     }
  60.     [MenuItem("yuchiHelper/CreateAssetBunldesALLForAndroid")]
  61.     static void CreateAssetBunldesALLForAndroid  ()
  62.     {
  63.         Caching.CleanCache ();
  64.         
  65.         string Path = Application.dataPath + "/AssetBundles/ALL.assetbundle";
  66.         
  67.         Object[] SelectedAsset = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets);
  68.         
  69.         foreach (Object obj in SelectedAsset)
  70.         {
  71.             Debug.Log ("Create AssetBunldes name :" + obj);
  72.         }
  73.         
  74.         //跟單獨打包最大的差異就在參數二
  75.         if (BuildPipeline.BuildAssetBundle (null, SelectedAsset, Path, BuildAssetBundleOptions.CollectDependencies,BuildTarget.Android))
  76.         {
  77.             Debug.Log("Success!!!  for  android");
  78.             AssetDatabase.Refresh ();
  79.         }
  80.         else
  81.         {
  82.             Debug.Log("false!!!!!");
  83.         }
  84.     }
  85.     [MenuItem("yuchiHelper/CreateAssetBunldesALL")]
  86.     static void CreateAssetBunldesALL  ()
  87.     {
  88.         Caching.CleanCache ();
  89.         string Path = Application.dataPath + "/AssetBundles/ALL.assetbundle";
  90.         Object[] SelectedAsset = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets);
  91.         foreach (Object obj in SelectedAsset)
  92.         {
  93.             Debug.Log ("Create AssetBunldes name :" + obj);
  94.         }
  95.         if (BuildPipeline.BuildAssetBundle (null, SelectedAsset, Path, BuildAssetBundleOptions.CollectDependencies))
  96.         {
  97.             Debug.Log("Success!!!");
  98.             AssetDatabase.Refresh ();
  99.         }
  100.         else
  101.         {
  102.             Debug.Log("false!!!!!");
  103.         }
  104.     }
  105. }
复制代码

作者: hyui    时间: 2014-6-26 21:22
感谢分享这个!! !
作者: HIDEOKOJIMA    时间: 2014-6-26 22:39
感谢分享这个!
作者: wucnj    时间: 2014-6-27 13:38
感谢分享!!!




欢迎光临 纳金网 (http://course.narkii.com/club/) Powered by Discuz! X2.5