Skip to content

Commit

Permalink
[refactor][editor]:重构ConfigWindow代码
Browse files Browse the repository at this point in the history
  • Loading branch information
CatImmortal committed Mar 15, 2023
1 parent 455baec commit 4374fa1
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 35 deletions.
24 changes: 21 additions & 3 deletions Assets/CatAsset/Editor/Config/BundleBuildDirectory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ namespace CatAsset.Editor
[Serializable]
public class BundleBuildDirectory : IComparable<BundleBuildDirectory>
{
/// <summary>
/// 目录名
/// </summary>
[SerializeField]
private string directoryName;

/// <summary>
/// 目录对象
/// </summary>
Expand Down Expand Up @@ -48,19 +54,31 @@ public class BundleBuildDirectory : IComparable<BundleBuildDirectory>
/// 资源包加密设置
/// </summary>
[SerializeField]
public BundleEncryptOptions EncryptOption;
public BundleEncryptOptions EncryptOption;

/// <summary>
/// 目录名
/// </summary>
public string DirectoryName => AssetDatabase.GetAssetPath(DirectoryObj);
public string DirectoryName
{
get
{
if (DirectoryObj != null)
{
directoryName = AssetDatabase.GetAssetPath(DirectoryObj);
}

return directoryName;
}
}

public BundleBuildDirectory(string directoryName, string buildRuleName = nameof(NAssetToOneBundle),
string regex = null, string group = GroupInfo.DefaultGroup,
BundleCompressOptions compressOption = BundleCompressOptions.UseGlobal,
BundleEncryptOptions encryptOption = BundleEncryptOptions.UseGlobal
)
{
this.directoryName = directoryName;
DirectoryObj = AssetDatabase.LoadAssetAtPath<Object>(directoryName);
BuildRuleName = buildRuleName;
Regex = regex;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,30 @@ public override void DrawSubWindow(Rect position)
{
EditorGUI.BeginChangeCheck();

DrawVersion();

DrawTargetPlatforms();

DrawOptions();

DrawOnlyBuildRaw();

DrawCopyGroup();

DrawButtons();

if (EditorGUI.EndChangeCheck())
{
EditorUtility.SetDirty(BundleBuildConfigSO.Instance);
AssetDatabase.SaveAssets();
}
}

/// <summary>
/// 绘制版本号
/// </summary>
private static void DrawVersion()
{
using (new EditorGUILayout.HorizontalScope())
{
EditorGUILayout.LabelField("安装包版本号:" + Application.version, GUILayout.Width(200));
Expand All @@ -46,7 +70,14 @@ public override void DrawSubWindow(Rect position)
EditorGUILayout.IntField(BundleBuildConfigSO.Instance.ManifestVersion, GUILayout.Width(50));
}

EditorGUILayout.Space();
EditorGUILayout.Separator();
}

/// <summary>
/// 绘制构建平台
/// </summary>
private void DrawTargetPlatforms()
{
EditorGUILayout.LabelField("选择资源包构建平台:");
using (new EditorGUILayout.HorizontalScope())
{
Expand All @@ -73,41 +104,48 @@ public override void DrawSubWindow(Rect position)
}
}

EditorGUILayout.Space();
EditorGUILayout.Separator();
}

/// <summary>
/// 绘制选项
/// </summary>
private static void DrawOptions()
{
using (new EditorGUILayout.HorizontalScope())
{
EditorGUILayout.LabelField("资源包构建设置:",GUILayout.Width(100));
EditorGUILayout.LabelField("资源包构建设置:", GUILayout.Width(100));
BundleBuildConfigSO.Instance.Options =
(BundleBuildOptions)EditorGUILayout.EnumFlagsField(BundleBuildConfigSO.Instance.Options,
GUILayout.Width(200));
EditorGUILayout.Space();
EditorGUILayout.LabelField("资源包全局压缩设置:",GUILayout.Width(120));

EditorGUILayout.Separator();

EditorGUILayout.LabelField("资源包全局压缩设置:", GUILayout.Width(120));
BundleCompressOptions compressOptions =
(BundleCompressOptions)EditorGUILayout.EnumPopup(BundleBuildConfigSO.Instance.GlobalCompress,
GUILayout.Width(100));
if (compressOptions != BundleCompressOptions.UseGlobal)
{
BundleBuildConfigSO.Instance.GlobalCompress = compressOptions;
}
EditorGUILayout.Space();
EditorGUILayout.LabelField("资源包全局加密设置:",GUILayout.Width(120));

EditorGUILayout.Separator();

EditorGUILayout.LabelField("资源包全局加密设置:", GUILayout.Width(120));
BundleEncryptOptions encryptOption =
(BundleEncryptOptions)EditorGUILayout.EnumPopup(BundleBuildConfigSO.Instance.GlobalEncrypt,
GUILayout.Width(100));
if (encryptOption != BundleEncryptOptions.UseGlobal)
{
BundleBuildConfigSO.Instance.GlobalEncrypt = encryptOption;
}
EditorGUILayout.Space();

EditorGUILayout.Separator();

GUILayout.Label("资源包构建输出根目录:", GUILayout.Width(150));
BundleBuildConfigSO.Instance.OutputPath = GUILayout.TextField(BundleBuildConfigSO.Instance.OutputPath,GUILayout.Width(300));
BundleBuildConfigSO.Instance.OutputPath =
GUILayout.TextField(BundleBuildConfigSO.Instance.OutputPath, GUILayout.Width(300));
if (GUILayout.Button("选择目录", GUILayout.Width(100)))
{
string folder = EditorUtility.OpenFolderPanel("选择资源包构建输出根目录", BundleBuildConfigSO.Instance.OutputPath, "");
Expand All @@ -117,20 +155,31 @@ public override void DrawSubWindow(Rect position)
}
}
}
EditorGUILayout.Space();


EditorGUILayout.Separator();
}

EditorGUILayout.Space();
/// <summary>
/// 绘制仅构建原生资源包
/// </summary>
private void DrawOnlyBuildRaw()
{
EditorGUILayout.Separator();
using (EditorGUILayout.ToggleGroupScope toggle =
new EditorGUILayout.ToggleGroupScope("仅构建原生资源包", isOnlyBuildRaw))
{
isOnlyBuildRaw = toggle.enabled;
}


EditorGUILayout.Space();

EditorGUILayout.Separator();
}

/// <summary>
/// 绘制复制到包体内的资源组
/// </summary>
private static void DrawCopyGroup()
{
using (EditorGUILayout.ToggleGroupScope toggle =
new EditorGUILayout.ToggleGroupScope("资源包构建目标平台只有1个时,在构建完成后将其复制到StreamingAssets目录下",
BundleBuildConfigSO.Instance.IsCopyToReadOnlyDirectory))
Expand All @@ -142,14 +191,21 @@ public override void DrawSubWindow(Rect position)
{
using (new EditorGUILayout.HorizontalScope())
{
EditorGUILayout.LabelField("要复制的资源组(以分号分隔,为空则全部复制):",GUILayout.Width(300));
BundleBuildConfigSO.Instance.CopyGroup = EditorGUILayout.TextField(BundleBuildConfigSO.Instance.CopyGroup,GUILayout.Width(600));
EditorGUILayout.LabelField("要复制的资源组(以分号分隔,为空则全部复制):", GUILayout.Width(300));
BundleBuildConfigSO.Instance.CopyGroup =
EditorGUILayout.TextField(BundleBuildConfigSO.Instance.CopyGroup, GUILayout.Width(600));
}
}

EditorGUILayout.Space();

var oldColor = GUI.color;

EditorGUILayout.Separator();
}

/// <summary>
/// 绘制按钮
/// </summary>
private void DrawButtons()
{
var oldColor = GUI.color;
using (new EditorGUILayout.HorizontalScope())
{
GUI.color = Color.red;
Expand Down Expand Up @@ -224,12 +280,6 @@ public override void DrawSubWindow(Rect position)
}
GUI.color = oldColor;
}

if (EditorGUI.EndChangeCheck())
{
EditorUtility.SetDirty(BundleBuildConfigSO.Instance);
AssetDatabase.SaveAssets();
}
}
}
}

0 comments on commit 4374fa1

Please sign in to comment.