diff --git a/CHANGELOG.md b/CHANGELOG.md index 6723b34..444a2d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ 本文件记录 `ShrinkApp.Core` 的包内变更。 +## [0.1.3] - 2026-08-28 + +### Changed + +- `ShrinkAppSettings` 优先从 `GameAssets/Runtime/Data/ShrinkSDK/ShrinkAppSettings` 加载,并保留旧根路径回退。 +- `ShrinkSDK/应用/创建设置` 统一在标准 `Resources/GameAssets/Runtime/Data/ShrinkSDK` 目录创建配置。 + ## [0.1.1] - 2026-08-16 ### Added diff --git a/Editor/ShrinkAppEditorMenu.cs b/Editor/ShrinkAppEditorMenu.cs index 827ccdd..d85d95b 100644 --- a/Editor/ShrinkAppEditorMenu.cs +++ b/Editor/ShrinkAppEditorMenu.cs @@ -9,11 +9,10 @@ namespace ShrinkApp.Editor [MenuItem("ShrinkSDK/应用/创建设置")] public static void CreateSettingsAsset() { - const string resourcesDir = "Assets/Resources"; - if (!AssetDatabase.IsValidFolder(resourcesDir)) - AssetDatabase.CreateFolder("Assets", "Resources"); + const string settingsDirectory = "Assets/Resources/GameAssets/Runtime/Data/ShrinkSDK"; + EnsureFolder(settingsDirectory); - const string assetPath = "Assets/Resources/ShrinkAppSettings.asset"; + const string assetPath = settingsDirectory + "/ShrinkAppSettings.asset"; var existing = AssetDatabase.LoadAssetAtPath(assetPath); if (existing != null) { @@ -34,6 +33,19 @@ namespace ShrinkApp.Editor EditorGUIUtility.PingObject(asset); Debug.Log("[ShrinkApp] 已创建 ShrinkAppSettings.asset"); } + + private static void EnsureFolder(string path) + { + var segments = path.Split('/'); + var current = segments[0]; + for (var i = 1; i < segments.Length; i++) + { + var next = current + "/" + segments[i]; + if (!AssetDatabase.IsValidFolder(next)) + AssetDatabase.CreateFolder(current, segments[i]); + current = next; + } + } } } #endif diff --git a/README.md b/README.md index 3213240..a94e49b 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,11 @@ IShrinkAppModuleInstaller [ShrinkAppModuleInstaller] ``` +`ShrinkAppSettings` 运行时优先从 +`Resources/GameAssets/Runtime/Data/ShrinkSDK/ShrinkAppSettings.asset` 加载;旧项目的 +`Resources/ShrinkAppSettings.asset` 继续作为回退。菜单 `ShrinkSDK/应用/创建设置` +会直接创建到新的标准目录。 + ## 启动流程 1. `ShrinkApp` 在 `RuntimeInitializeOnLoadMethod(BeforeSceneLoad)` 创建宿主。 diff --git a/Runtime/ShrinkAppTypes.cs b/Runtime/ShrinkAppTypes.cs index 244964d..b00f765 100644 --- a/Runtime/ShrinkAppTypes.cs +++ b/Runtime/ShrinkAppTypes.cs @@ -120,6 +120,10 @@ namespace ShrinkApp [CreateAssetMenu(fileName = "ShrinkAppSettings", menuName = "ShrinkSDK/应用/应用设置")] public class ShrinkAppSettings : ScriptableObject { + public const string PreferredResourcesPath = + "GameAssets/Runtime/Data/ShrinkSDK/ShrinkAppSettings"; + public const string LegacyResourcesPath = "ShrinkAppSettings"; + private static ShrinkAppSettings? _instance; public static ShrinkAppSettings Instance @@ -129,7 +133,9 @@ namespace ShrinkApp if (_instance != null) return _instance; - _instance = Resources.Load("ShrinkAppSettings"); + _instance = Resources.Load(PreferredResourcesPath); + if (!_instance) + _instance = Resources.Load(LegacyResourcesPath); #if UNITY_EDITOR if (!_instance) diff --git a/package.json b/package.json index 91b4d38..785013a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.cneicy.shrink-app-core", - "version": "0.1.2", + "version": "0.1.3", "displayName": "ShrinkApp Core", "description": "Shrink 系列统一宿主层,提供模块安装器、服务容器与统一启动流程。", "unity": "2022.3",