From e0191abb1e49407d2c9e576dc51b30ee2ac6ed15 Mon Sep 17 00:00:00 2001 From: cneicy Date: Fri, 28 Aug 2026 03:44:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(settings):=20=E4=BC=98=E5=85=88=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=A0=87=E5=87=86=20ShrinkSDK=20=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++++++ Editor/ShrinkAppEditorMenu.cs | 20 ++++++++++++++++---- README.md | 5 +++++ Runtime/ShrinkAppTypes.cs | 8 +++++++- package.json | 2 +- 5 files changed, 36 insertions(+), 6 deletions(-) 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",