diff --git a/Assets/00.StaryEvo/Runtime/PlayerSettings/HotfixMainResDomain.cs b/Assets/00.StaryEvo/Runtime/PlayerSettings/HotfixMainResDomain.cs index 5f98e68..40afcc8 100644 --- a/Assets/00.StaryEvo/Runtime/PlayerSettings/HotfixMainResDomain.cs +++ b/Assets/00.StaryEvo/Runtime/PlayerSettings/HotfixMainResDomain.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEditor; using UnityEngine; @@ -8,8 +9,41 @@ 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; + + private static HotfixMainResDomain globalInstance; + public static HotfixMainResDomain Get + { + get + { + // 在Resources目录下查找配置 + if (globalInstance == null) + { + globalInstance = Resources.Load("HotfixMainResDomain"); + } + // 无该配置时尝试创建 + else if (globalInstance == null) + { + globalInstance = CreateInstance(); + var path = AssetDatabase.GenerateUniqueAssetPath("Resources/HotfixMainResDomain.asset"); + AssetDatabase.CreateAsset(globalInstance, path); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + // 返回热更资源配置 + return globalInstance; + } + } } [Serializable] @@ -37,14 +71,61 @@ namespace Stary.Evo /// /// 项目包名 /// - [ReadOnly] public string projectPackageName; - -#if UNITY_EDITOR - - public SceneAsset loadingScene; -#endif [ReadOnly] - public string loadingScenePath; + public string projectPackageName; + + /// + /// 资源加载场景 + /// + [LabelText("资源加载场景")] + [Required("如果需要场景作为资源加载过程中的过渡,请将其拖到此处")] + public SceneAsset loadingScene; + /// + /// 资源加载场景(路径) + /// + public string loadingScenePath => AssetDatabase.GetAssetPath(loadingScene); } + + [Serializable] + public class BuildConfig + { + [LabelText("包体配置")] + private List packages = new(); + + public PackageConfig Get(string packageID) + { + var result = packages.Find(x=>x.packageID==packageID); + if (result == null) + { + result = new PackageConfig(); + 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; + } } \ No newline at end of file diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index c285ae4..68cc467 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "2.1.0", + "version": "2.1.1", "displayName": "00.StaryEvo", "description": "This is an Framework package(后台服务器版本,端口9527)", "unity": "2021.3",