查看: 1765|回复: 3
打印 上一主题 下一主题

[其他] AssetBunldes打包程序代码

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-6-26 20:27:55 |只看该作者 |倒序浏览
  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. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-6-26 21:22:35 |只看该作者
感谢分享这个!! !
回复

使用道具 举报

115

主题

3

听众

5676

积分

高级设计师

Rank: 6Rank: 6

纳金币
7268
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-6-26 22:39:40 |只看该作者
感谢分享这个!
回复

使用道具 举报

wucnj    

1

主题

1

听众

3160

积分

中级设计师

Rank: 5Rank: 5

纳金币
1065
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-6-27 13:38:40 |只看该作者
感谢分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-27 13:05 , Processed in 0.116345 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部