Example #1
0
 private static string ResultBuildTypeExtension( AssetBuildType buildType )
 {
     switch( buildType ) {
         case AssetBuildType.ShipDefine:
             return Defines.AssetExt.ShipDefine;
         case AssetBuildType.Model:
             return Defines.AssetExt.ShipModel;
         case AssetBuildType.Effect:
             return Defines.AssetExt.Effect;
         case AssetBuildType.Audio:
             return Defines.AssetExt.AudioClip;
         case AssetBuildType.Bullet:
             return Defines.AssetExt.Bullet;
         case AssetBuildType.SceneDefine:
             return Defines.AssetExt.SceneDefine;
         case AssetBuildType.SceneObject:
             return Defines.AssetExt.SceneObject;
         default:
             return Defines.AssetExt.UnityAsset;
     }
 }
Example #2
0
 private static string ResultBundleSavePath( AssetBuildType buildType )
 {
     switch( buildType ) {
         case AssetBuildType.ShipDefine:
             return ShipDefineOutputPath;
         case AssetBuildType.Model:
             return ModelOutputPath;
         case AssetBuildType.Effect:
             return EffectOutputPath;
         case AssetBuildType.Audio:
             return AudioOutputPath;
         case AssetBuildType.Bullet:
             return BulletOutputPath;
         case AssetBuildType.SceneDefine:
             return SceneSettingOutputPath;
         case AssetBuildType.SceneObject:
             return SceneObjectOutputPath;
         default:
             Debug.LogWarning("未指定Bundle的导出文件目录!");
             return "Assets/";
     }
 }
Example #3
0
        public static void BuildAssetBundle( Object asset, AssetBuildType buildType )
        {
            if( !asset ) {
                UnityEditor.EditorUtility.DisplayDialog(EditorConfig.GUI_NOTICE, EditorConfig.GUI_SELECT_OBJ_ERROR, EditorConfig.GUI_MSG_BUTTON_OK);
                return;
            }

            string savePath = ResultBundleSavePath( buildType );
            string assetExt = ResultBuildTypeExtension( buildType );

            string[] dependencies = AssetDatabase.GetDependencies( new string[] { AssetDatabase.GetAssetPath( asset ) } );
            //for( int i = 0; i < dependencies.Length; i++ ) Debug.Log( "Dependencies :" + dependencies[i] );
            string bundleName = Path.ChangeExtension( asset.name, assetExt );
            string[] m_assetNames = dependencies;

            AssetBundleBuild[] buildInfo = new[] {
                new AssetBundleBuild {
                    assetBundleName = bundleName,
                    assetNames = m_assetNames
                }
            };

            if( !Directory.Exists( savePath ) )
                Directory.CreateDirectory( savePath );

            BuildPipeline.BuildAssetBundles( savePath, buildInfo, 0, EditorUserBuildSettings.activeBuildTarget );
            AssetDatabase.Refresh();
        }