关于AssetBundle打包的编辑器扩展

xiaoxiao2021-02-28  68

1.public static AssetBundleManifest BuildAssetBundles(string outputPathBuildAssetBundleOptions assetBundleOptionsBuildTarget targetPlatform);

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 using  System.Collections; using  System.Collections.Generic; using  UnityEditor; using  UnityEngine;   public  class  CreateBundle : MonoBehaviour {        [MenuItem( "CustomEditor/CreateAssetBundleBySpecified" )]      static  void  CreateAssetBundlesMain() {            AssetBundleBuild[] buildMap =  new  AssetBundleBuild[2];            //======================================================          buildMap[0].assetBundleName =  "enemybundle" ;            string [] enemyAssets =  new  string [1];          enemyAssets[0] =  "Assets/Prefabs/Cube0.prefab" ;          buildMap[0].assetNames = enemyAssets;          //======================================================            //======================================================          buildMap[1].assetBundleName =  "herobundle" ;            string [] heroAssets =  new  string [1];          heroAssets[0] =  "Assets/Prefabs/Cube1.prefab" ;          buildMap[1].assetNames = heroAssets;          //======================================================            BuildPipeline.BuildAssetBundles( "Assets/StreamingAssets" , buildMap,BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows64);          //刷新编辑器      AssetDatabase.Refresh();      } }

2.public static AssetBundleManifest BuildAssetBundles(string outputPath, AssetBundleBuild[] buildsBuildAssetBundleOptions assetBundleOptionsBuildTarget targetPlatform);

1 2 3 4 5 6 7 8 9 10 11 12 13 14 using  System.Collections; using  System.Collections.Generic; using  UnityEngine; using  UnityEditor;   public  class  CreateBundle1 : MonoBehaviour {      [MenuItem( "CustomEditor/AllResourcesToTargetFolder" )]      static  void  AssetsBundleAllResourcesToTargetFolder() {          BuildPipeline.BuildAssetBundles( "Assets/StreamingAssets" , BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);          //刷新编辑器          AssetDatabase.Refresh();      } }

3.对第一种方式的优化,可以根据在Hierarchy中选择指定的对象进行打包

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 using  System.Collections; using  System.Collections.Generic; using  UnityEngine; using  UnityEditor;   public  class  CreateBundle2 : MonoBehaviour {        [MenuItem( "CustomEditor/CreateAssetBundleBySelected" )]      static  void  CreateAssetBundleBySelected()      {          //获取选择的需要打包的对象          Object[] SelectedObjects = Selection.GetFiltered( typeof (Object), SelectionMode.DeepAssets);            AssetBundleBuild[] buildMap =  new  AssetBundleBuild[1];            //======================================================          buildMap[0].assetBundleName =  "demobundle" ;            string [] demoAssets =  new  string [SelectedObjects.Length];          for  ( int  i = 0; i < SelectedObjects.Length; i++)          {              demoAssets[i] = AssetDatabase.GetAssetPath(SelectedObjects[i]);          }            buildMap[0].assetNames = demoAssets;          //======================================================              BuildPipeline.BuildAssetBundles( "Assets/StreamingAssets" , buildMap, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);              //刷新编辑器          AssetDatabase.Refresh();      } }
转载请注明原文地址: https://www.6miu.com/read-79500.html

最新回复(0)