Files
plugin-library/Assets/00.StaryEvo/Runtime/PlayerSettings/HotfixMainResDomain.cs
mzh a42a663ad2 【m】优化打包工具
1.修复包体配置项在配置文件Inspector面板不显示的问题
2.修复在打包工具面板修改包体配置时无法保存的问题
2026-03-31 17:28:20 +08:00

111 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEditor;
using UnityEngine;
namespace Stary.Evo
{
[CreateAssetMenu(fileName = "HotfixMainResDomain", menuName = "Evo/Create HotfixMainResDomain")]
public class HotfixMainResDomain : ScriptableObject
{
[TabGroup("MainResDomain")]
[InlineProperty, HideLabel]
public HotfixMainResDomainEntity hotfixMainResDomainEntity;
[TabGroup("ProjectInfo")]
[InlineProperty, HideLabel]
public ProjectInfo projectInfo;
[TabGroup("BuildConfig")]
[InlineProperty, HideLabel]
public BuildConfig buildConfig;
}
[Serializable]
public class HotfixMainResDomainEntity
{
public string ipconfig = "http://192.168.31.100:5005/HotRefresh";
public string mainDomainVersion = "";
public string username = "UnityHot";
public string password = "Unity1234";
}
[Serializable]
public class ProjectInfo
{
/// <summary>
/// 项目中文名称
/// </summary>
public string projectName;
/// <summary>
/// 项目代号
/// </summary>
public string projectCode;
/// <summary>
/// 项目包名
/// </summary>
[ReadOnly]
public string projectPackageName;
#if UNITY_EDITOR
/// <summary>
/// 资源加载场景
/// </summary>
[LabelText("资源加载场景")]
[Required("如果需要场景作为资源加载过程中的过渡,请将其拖到此处")]
public SceneAsset loadingScene;
#endif
/// <summary>
/// 资源加载场景(路径)
/// </summary>
public string loadingScenePath;
}
[Serializable]
public class BuildConfig
{
[SerializeField]
[LabelText("包体配置")]
private List<PackageConfig> packages = new();
public PackageConfig Get(string packageID)
{
var result = packages.Find(x=>x.packageID==packageID);
if (result == null)
{
result = new PackageConfig();
result.packageID = packageID;
packages.Add(result);
}
return result;
}
public void Set(string packageID, PackageConfigInfo config)
{
var package = Get(packageID);
package.info = config;
}
}
[Serializable]
public class PackageConfig
{
[FoldoutGroup("@packageID")]
[LabelText("包体ID")]
public string packageID;
[FoldoutGroup("@packageID")]
[InlineProperty, HideLabel]
public PackageConfigInfo info;
}
[Serializable]
public class PackageConfigInfo
{
[LabelText("App名称")]
public string appName;
}
}