@@ -22,6 +22,9 @@ public class AssetBundleBuildEditor :EditorWindow {
22
22
23
23
private static readonly Dictionary < BuildTarget , bool > _allTargets = new Dictionary < BuildTarget , bool > ( ) ;
24
24
25
+ //压缩内容
26
+ string [ ] _compressionOptionsContent = new string [ ] { "No Compression" , "Standard Compression (LZMA)" , "Chunk Based Compression (LZ4)" } ;
27
+
25
28
[ MenuItem ( "Tools/AssetBundles Options %#O" ) ]
26
29
public static void AssetBundilesOptions ( )
27
30
{
@@ -95,6 +98,12 @@ void OnGUI()
95
98
}
96
99
GUILayout . EndHorizontal ( ) ;
97
100
101
+ //压缩格式
102
+ GUILayout . BeginHorizontal ( "Box" ) ;
103
+ GUILayout . Label ( "Compression:" ) ;
104
+ _config . CompressOptions = EditorGUILayout . Popup ( _config . CompressOptions , _compressionOptionsContent ) ;
105
+ GUILayout . EndHorizontal ( ) ;
106
+
98
107
GUILayout . BeginHorizontal ( "Box" ) ;
99
108
GUILayout . Label ( "BuildPath:" ) ;
100
109
GUILayout . TextArea ( string . IsNullOrEmpty ( _config . BuildPath ) ? _rootPath : _config . BuildPath ) ;
@@ -120,6 +129,9 @@ void OnGUI()
120
129
}
121
130
GUILayout . EndHorizontal ( ) ;
122
131
132
+ //build targets----------------------------------------------------------------------------
133
+ GUILayout . BeginVertical ( "Box" ) ;
134
+ GUILayout . Label ( "Build Targets:" ) ;
123
135
_scrollViewPos = GUILayout . BeginScrollView ( _scrollViewPos , "Box" ) ;
124
136
foreach ( var item in _allTargets )
125
137
{
@@ -131,7 +143,9 @@ void OnGUI()
131
143
}
132
144
}
133
145
GUILayout . EndScrollView ( ) ;
146
+ GUILayout . EndVertical ( ) ;
134
147
148
+ //确认更改--------------------------------------------------------------------------------
135
149
GUILayout . BeginHorizontal ( ) ;
136
150
GUILayout . FlexibleSpace ( ) ;
137
151
if ( GUILayout . Button ( "OK" , GUILayout . Width ( 60 ) ) )
@@ -174,11 +188,21 @@ private static void SaveConfig()
174
188
}
175
189
176
190
//资源打包
177
- private static void BuildTarget ( BuildTarget target , BuildAssetBundleOptions options = BuildAssetBundleOptions . None )
191
+ private static void BuildTarget ( BuildTarget target )
178
192
{
193
+ //打包路径
179
194
string buildPath = Path . Combine ( _config . BuildPath , target . ToString ( ) ) ;
180
195
if ( ! Directory . Exists ( buildPath ) )
181
196
Directory . CreateDirectory ( buildPath ) ;
197
+ //设置打包的相关选项
198
+ BuildAssetBundleOptions options = BuildAssetBundleOptions . None ;
199
+ //设置压缩 默认LZMA
200
+ if ( _config . CompressOptions == 0 )
201
+ options |= BuildAssetBundleOptions . UncompressedAssetBundle ;
202
+ //LZ4
203
+ else if ( _config . CompressOptions == 2 )
204
+ options |= BuildAssetBundleOptions . ChunkBasedCompression ;
205
+ //打包
182
206
BuildPipeline . BuildAssetBundles ( buildPath , options , target ) ;
183
207
184
208
//保存资源版本信息
@@ -245,15 +269,17 @@ private static void SavePlatformVersion(List<BuildTarget> targets)
245
269
EditorUtility . OpenWithDefaultApp ( _config . BuildPath ) ;
246
270
}
247
271
248
- //ab包的配置文件信息
249
- [ System . Serializable ]
250
- public class AssetBundleConifgInfo
251
- {
252
- public int Version = 0 ;
253
- public string BuildPath = "" ;
254
- public List < int > BuildTargets = new List < int > ( ) ;
272
+ //ab包的配置文件信息
273
+ [ System . Serializable ]
274
+ public class AssetBundleConifgInfo
275
+ {
276
+ public int Version = 0 ;
277
+ public string BuildPath = "" ;
278
+ public int CompressOptions = 1 ;
279
+ public List < int > BuildTargets = new List < int > ( ) ;
255
280
256
- }
281
+ }
257
282
283
+
258
284
}
259
285
}
0 commit comments