Skip to content

Commit 312d260

Browse files
committed
added ExtendBuildAssetBundleOptions
1 parent dd1f740 commit 312d260

File tree

8 files changed

+76
-32
lines changed

8 files changed

+76
-32
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog (unofficial)
22

3+
## [1.7.0] - 2022-10-12
4+
- Added ExtendBuildAssetBundleOptions for Advenced Settings (most convenient).
5+
- Modified BuildAssetBundles method in BundleBuildMap (changed extend options param).
6+
37
## [1.6.2] - 2022-10-06
48
- Fixed replace by hash feature has load manifest file from local error issue.
59

Editor/AssetBundleBuildTab.cs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,23 @@ internal ToggleData(
2929
string title,
3030
string tooltip,
3131
List<string> onToggles,
32-
BuildAssetBundleOptions opt = BuildAssetBundleOptions.None)
32+
BuildAssetBundleOptions opt = BuildAssetBundleOptions.None,
33+
ExtendBuildAssetBundleOptions extdOpt = ExtendBuildAssetBundleOptions.None)
3334
{
3435
if (onToggles.Contains(title))
3536
state = true;
3637
else
3738
state = s;
3839
content = new GUIContent(title, tooltip);
3940
option = opt;
41+
extdOption = extdOpt;
4042
}
4143
//internal string prefsKey
4244
//{ get { return k_BuildPrefPrefix + content.text; } }
4345
internal bool state;
4446
internal GUIContent content;
4547
internal BuildAssetBundleOptions option;
48+
internal ExtendBuildAssetBundleOptions extdOption;
4649
}
4750

4851
private AssetBundleInspectTab m_InspectTab;
@@ -165,8 +168,9 @@ internal void OnEnable(EditorWindow parent)
165168
false,
166169
"Without Manifest",
167170
"When build finished do remove menifest files.",
168-
m_UserData.m_OnToggles
169-
));
171+
m_UserData.m_OnToggles,
172+
BuildAssetBundleOptions.None,
173+
ExtendBuildAssetBundleOptions.WithoutManifest));
170174

171175
m_ForceRebuild = new ToggleData(
172176
false,
@@ -380,9 +384,8 @@ private void ExecuteBuild()
380384
}
381385

382386
BuildAssetBundleOptions opt = BuildAssetBundleOptions.None;
387+
ExtendBuildAssetBundleOptions extdOpt = ExtendBuildAssetBundleOptions.None;
383388

384-
bool withoutMenifest = false;
385-
bool replaceByHash = false;
386389
if (AssetBundleModel.Model.DataSource.CanSpecifyBuildOptions)
387390
{
388391
// compression
@@ -395,12 +398,14 @@ private void ExecuteBuild()
395398
if (m_UserData.m_BundleNameOption == BundleNameOptions.AppendHash)
396399
opt |= BuildAssetBundleOptions.AppendHashToAssetBundleName;
397400
else if (m_UserData.m_BundleNameOption == BundleNameOptions.ReplaceByHash)
398-
replaceByHash = true;
401+
extdOpt |= ExtendBuildAssetBundleOptions.ReplaceByHash;
399402

400403
// toggle options
401404
foreach (var tog in m_ToggleData)
402405
{
403-
if (tog.content.text == "Without Manifest") withoutMenifest = tog.state;
406+
// for extend options
407+
if (tog.extdOption != ExtendBuildAssetBundleOptions.None && tog.state) extdOpt |= tog.extdOption;
408+
// for options
404409
else if (tog.state) opt |= tog.option;
405410
}
406411
}
@@ -409,6 +414,7 @@ private void ExecuteBuild()
409414

410415
buildInfo.outputDirectory = m_UserData.m_OutputPath;
411416
buildInfo.options = opt;
417+
buildInfo.extdOptions = extdOpt;
412418
buildInfo.buildTarget = (BuildTarget)m_UserData.m_BuildTarget;
413419
buildInfo.onBuild = (assetBundleName) =>
414420
{
@@ -417,8 +423,6 @@ private void ExecuteBuild()
417423
m_InspectTab.AddBundleFolder(buildInfo.outputDirectory);
418424
m_InspectTab.RefreshBundles();
419425
};
420-
buildInfo.withoutManifest = withoutMenifest;
421-
buildInfo.replaceByHash = replaceByHash;
422426

423427
AssetBundleModel.Model.DataSource.BuildAssetBundles(buildInfo);
424428

Editor/AssetBundleDataSource/ABDataSource.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,27 @@ public List<AssetBundleBuild> buildMap
5757
/// <summary>
5858
/// Remove manifest from build folder
5959
/// </summary>
60-
public bool withoutManifest
61-
{
62-
get { return m_withoutManifest; }
63-
set { m_withoutManifest = value; }
64-
}
65-
private bool m_withoutManifest;
60+
//public bool withoutManifest
61+
//{
62+
// get { return m_withoutManifest; }
63+
// set { m_withoutManifest = value; }
64+
//}
65+
//private bool m_withoutManifest;
6666
/// <summary>
6767
/// Replace by hash
6868
/// </summary>
69-
public bool replaceByHash
69+
//public bool replaceByHash
70+
//{
71+
// get { return m_replaceByHash; }
72+
// set { m_replaceByHash = value; }
73+
//}
74+
//private bool m_replaceByHash;
75+
public ExtendBuildAssetBundleOptions extdOptions
7076
{
71-
get { return m_replaceByHash; }
72-
set { m_replaceByHash = value; }
77+
get { return m_extdOptions; }
78+
set { m_extdOptions = value; }
7379
}
74-
private bool m_replaceByHash;
80+
private ExtendBuildAssetBundleOptions m_extdOptions;
7581
}
7682

7783
/// <summary>

Editor/BundleBuildMap.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ public bool BuildAssetBundles(ABBuildInfo info)
509509
string buildName = string.IsNullOrEmpty(this.customBuildMaps[i].buildName) ? this.customBuildMaps[i].bundleBuildMap.sourceName : this.customBuildMaps[i].buildName;
510510
string outputDirectory = $"{info.outputDirectory}/{this.customBuildMaps[i].bundleBuildMap.sourceName}/{buildName}";
511511

512-
if (BuildAssetBundles(outputDirectory, this.customBuildMaps[i].bundleBuildMap.GetBuildMap(), info.options, info.buildTarget, info.withoutManifest, info.replaceByHash, null))
512+
if (BuildAssetBundles(outputDirectory, this.customBuildMaps[i].bundleBuildMap.GetBuildMap(), info.options, info.buildTarget, info.extdOptions, null))
513513
{
514514
stringBuilder.Append($"<color=#9DFF42>[Source Name: {this.customBuildMaps[i].bundleBuildMap.sourceName}, Build Name: {buildName}] Build Result => Success</color>\n");
515515
}
@@ -526,7 +526,7 @@ public bool BuildAssetBundles(ABBuildInfo info)
526526
}
527527
else
528528
{
529-
return BuildAssetBundles(info.outputDirectory, this.GetBuildMap(), info.options, info.buildTarget, info.withoutManifest, info.replaceByHash, info.onBuild);
529+
return BuildAssetBundles(info.outputDirectory, this.GetBuildMap(), info.options, info.buildTarget, info.extdOptions, info.onBuild);
530530
}
531531

532532
return false;
@@ -543,10 +543,19 @@ public bool BuildAssetBundles(ABBuildInfo info)
543543
/// <param name="replaceByHash"></param>
544544
/// <param name="onBuild"></param>
545545
/// <returns></returns>
546-
public static bool BuildAssetBundles(string outputDirectory, AssetBundleBuild[] buildMap, BuildAssetBundleOptions options, BuildTarget buildTarget, bool withoutManifest, bool replaceByHash, Action<string> onBuild)
546+
public static bool BuildAssetBundles(string outputDirectory, AssetBundleBuild[] buildMap, BuildAssetBundleOptions options, BuildTarget buildTarget, ExtendBuildAssetBundleOptions extdOptions, Action<string> onBuild)
547547
{
548548
if (!Directory.Exists(outputDirectory)) Directory.CreateDirectory(outputDirectory);
549549

550+
// if use replaceByHash must remove AppendHashToAssetBundleName option (priority)
551+
if (Convert.ToBoolean(extdOptions & ExtendBuildAssetBundleOptions.ReplaceByHash))
552+
{
553+
if (Convert.ToBoolean(options & BuildAssetBundleOptions.AppendHashToAssetBundleName))
554+
{
555+
options ^= BuildAssetBundleOptions.AppendHashToAssetBundleName;
556+
}
557+
}
558+
550559
var buildManifest = BuildPipeline.BuildAssetBundles(outputDirectory, buildMap, options, buildTarget);
551560
if (buildManifest == null)
552561
{
@@ -555,15 +564,15 @@ public static bool BuildAssetBundles(string outputDirectory, AssetBundleBuild[]
555564
}
556565

557566
// after build (without manifest)
558-
if (withoutManifest)
567+
if (Convert.ToBoolean(extdOptions & ExtendBuildAssetBundleOptions.WithoutManifest))
559568
{
560569
bool completes = AssetBundleBuildTab.WithoutManifestFile(outputDirectory);
561570
if (!completes) Debug.Log("<color=#FF0000>Error in process remove manifest.</color>");
562571
else Debug.Log($"<color=#60ffb0>Remove all manifest file completes.</color>");
563572
}
564573

565574
// after build (replace by hash)
566-
if (replaceByHash)
575+
if (Convert.ToBoolean(extdOptions & ExtendBuildAssetBundleOptions.ReplaceByHash))
567576
{
568577
bool completes = AssetBundleBuildTab.ReplaceBundleNameByHash(outputDirectory);
569578
if (!completes) Debug.Log("<color=#FF0000>Error in process replace by hash.</color>");
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace AssetBundleBrowser
2+
{
3+
public enum ExtendBuildAssetBundleOptions
4+
{
5+
None = 0x0,
6+
WithoutManifest = 0x1,
7+
ReplaceByHash = 0x2,
8+
}
9+
}

Editor/ExtendBuildAssetBundleOptions.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,19 @@ When enabled sync feature can sync asset data to other BuildMap <font color=#FF0
6161
BuildTarget target = BuildTarget.StandaloneWindows;
6262
6363
// LZ4
64-
BuildAssetBundleOptions bundleOptions = BuildAssetBundleOptions.ChunkBasedCompression;
64+
BuildAssetBundleOptions options = BuildAssetBundleOptions.ChunkBasedCompression;
6565
6666
// regular
67-
BundleBuildMap.BuildAssetBundles(outputDirectory, bundleBuildMap.GetBuildMap(), bundleOptions, target, null);
67+
BundleBuildMap.BuildAssetBundles(outputDirectory, bundleBuildMap.GetBuildMap(), options, target, null);
6868
69-
// including withoutManifest and replaceByHash params
70-
bool withoutManifest = true;
71-
bool replaceByHash = true;
72-
BundleBuildMap.BuildAssetBundles(outputDirectory, bundleBuildMap.GetBuildMap(), bundleOptions, target, withoutManifest, replaceByHash, null);
69+
// including extend options
70+
ExtendBuildAssetBundleOptions extdOptions = ExtendBuildAssetBundleOptions.None;
71+
extdOptions |= ExtendBuildAssetBundleOptions.WithoutManifest;
72+
extdOptions |= ExtendBuildAssetBundleOptions.ReplaceByHash;
73+
BundleBuildMap.BuildAssetBundles(outputDirectory, bundleBuildMap.GetBuildMap(), options, target, extdOptions, null);
7374
```
7475

75-
### Extension Advenced Settings
76+
### Advenced Settings Extension
7677

7778
- WithoutManifest : after build remove manifest file from build folder.
7879

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
"name": "com.unity.assetbundlebrowser.plus",
44
"displayName": "Asset Bundle Browser Plus",
5-
"version": "1.6.2",
5+
"version": "1.7.0",
66
"unity": "2018.1",
77
"description": "The Asset Bundle Browser tool enables the user to view and edit the configuration of asset bundles for their Unity project. It will block editing that would create invalid bundles, and inform you of any issues with existing bundles. It also provides basic build functionality.\n\nUse this tool as an alternative to selecting assets and setting their asset bundle manually in the inspector. It can be dropped into any Unity project with a version of 5.6 or greater. It will create a new menu item in Window > AssetBundle Browser. The bundle configuration, build functionality, and built-bundle inspection are split into three tabs within the new window.",
88
"keywords": ["asset", "bundle", "bundles", "assetbundles"],

0 commit comments

Comments
 (0)