From 28e4214413a1939629fe88f26f6bea69a35149ec Mon Sep 17 00:00:00 2001 From: Ding Yuntian <1491671119@qq.com> Date: Thu, 23 Jul 2026 15:42:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B8=85=E9=99=A4=E5=87=A0=E4=B8=AA?= =?UTF-8?q?=E6=97=A7=E7=9A=84=E6=B7=B7=E7=94=A8=E6=B5=8B=E8=AF=95=E5=AD=98?= =?UTF-8?q?=E6=A1=A3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 - .../DeveloperModePanelBuilder.cs | 36 +- Assets/Editor/SaveSystemValidation.meta | 8 - .../DevSavePromoteWindow.cs | 536 ------------- .../DevSavePromoteWindow.cs.meta | 11 - .../SaveSystemTestWindow.cs | 669 ----------------- .../SaveSystemTestWindow.cs.meta | 11 - .../SaveSystemValidationWindow.cs | 704 ------------------ .../SaveSystemValidationWindow.cs.meta | 11 - Assets/Scripts/AssetRefs/ConstRef.cs | 17 - Assets/Scripts/Game Loop/GameManager.cs | 19 - .../Scripts/SaveSystem/ISnapshotProvider.cs | 4 - Assets/Scripts/SaveSystem/README.md | 8 - .../SaveSystem/SaveRestoreOrchestrator.cs | 51 +- Assets/Scripts/SaveSystem/SlotManager.cs | 66 +- .../Scripts/SaveSystem/SnapshotPersistence.cs | 33 +- Assets/Scripts/SaveSystem/TestSaveArchive.cs | 218 ------ .../SaveSystem/TestSaveArchive.cs.meta | 11 - Assets/Scripts/UI/Panel/DeveloperModePanel.cs | 74 -- Assets/Scripts/Utility/DevSaveCatalog.cs | 220 ------ Assets/Scripts/Utility/DevSaveCatalog.cs.meta | 11 - DevSaveFiles/Day0Prologue/001_Start/meta.json | 11 - .../Day0Prologue/001_Start/snapshot.json | 65 -- DevSaveFiles/Day1Begin/001_地铁ver5/meta.json | 11 - .../Day1Begin/001_地铁ver5/snapshot.json | 1 - DevSaveFiles/Day1Mid/001_佩佩/meta.json | 11 - DevSaveFiles/Day1Mid/001_佩佩/snapshot.json | 1 - DevSaveFiles/Day1Night/001_酒吧6/meta.json | 11 - .../Day1Night/001_酒吧6/snapshot.json | 1 - DevSaveFiles/Day1Sleep/001_开场/meta.json | 11 - DevSaveFiles/Day1Sleep/001_开场/snapshot.json | 1 - DevSaveFiles/Day1Sleep/002_教室苏醒/meta.json | 11 - .../Day1Sleep/002_教室苏醒/snapshot.json | 1 - DevSaveFiles/Day1Sleep/003_教室/meta.json | 11 - DevSaveFiles/Day1Sleep/003_教室/snapshot.json | 1 - DevSaveFiles/Day1Sleep/004_走廊/meta.json | 11 - DevSaveFiles/Day1Sleep/004_走廊/snapshot.json | 1 - DevSaveFiles/Day1Sleep/005_楼梯间/meta.json | 11 - .../Day1Sleep/005_楼梯间/snapshot.json | 1 - DevSaveFiles/Day1Sleep/006_天台/meta.json | 11 - DevSaveFiles/Day1Sleep/006_天台/snapshot.json | 1 - DevSaveFiles/Day1Sleep/007_天文台/meta.json | 11 - .../Day1Sleep/007_天文台/snapshot.json | 1 - DevSaveFiles/Day1Sleep/008_海边/meta.json | 11 - DevSaveFiles/Day1Sleep/008_海边/snapshot.json | 1 - DevSaveFiles/Day2Mid/001_Start/meta.json | 11 - DevSaveFiles/Day2Mid/001_Start/snapshot.json | 1 - DevSaveFiles/Day2Night/001_Start/meta.json | 11 - .../Day2Night/001_Start/snapshot.json | 63 -- DevSaveFiles/Day2Night/002_BE/meta.json | 11 - DevSaveFiles/Day2Night/002_BE/snapshot.json | 63 -- DevSaveFiles/GeneralEnd/001_Start/meta.json | 11 - .../GeneralEnd/001_Start/snapshot.json | 1 - DevSaveFiles/Peipei1/001_Intro/meta.json | 11 - DevSaveFiles/Peipei1/001_Intro/snapshot.json | 95 --- DevSaveFiles/Peipei1/002_Enter_Room/meta.json | 11 - .../Peipei1/002_Enter_Room/snapshot.json | 95 --- DevSaveFiles/Peipei1/003_Body_UF/meta.json | 11 - .../Peipei1/003_Body_UF/snapshot.json | 114 --- DevSaveFiles/Peipei1/004_UF_Deep/meta.json | 11 - .../Peipei1/004_UF_Deep/snapshot.json | 117 --- .../Peipei1/005_Body_Vision/meta.json | 11 - .../Peipei1/005_Body_Vision/snapshot.json | 120 --- .../Peipei1/006_Memory_Start/meta.json | 11 - .../Peipei1/006_Memory_Start/snapshot.json | 154 ---- .../Peipei1/007_Memory_Check/meta.json | 11 - .../Peipei1/007_Memory_Check/snapshot.json | 156 ---- DevSaveFiles/Peipei1/008_Analysis/meta.json | 11 - .../Peipei1/008_Analysis/snapshot.json | 140 ---- DevSaveFiles/Peipei1/009_Pre_Talk/meta.json | 11 - .../Peipei1/009_Pre_Talk/snapshot.json | 138 ---- DevSaveFiles/Peipei1/010_Surgery/meta.json | 11 - .../Peipei1/010_Surgery/snapshot.json | 138 ---- DevSaveFiles/Peipei1/011_CutLine/meta.json | 11 - .../Peipei1/011_CutLine/snapshot.json | 136 ---- DevSaveFiles/Peipei1/012_Recheck/meta.json | 11 - .../Peipei1/012_Recheck/snapshot.json | 131 ---- .../Peipei1/013_Recheck_Vision/meta.json | 11 - .../Peipei1/013_Recheck_Vision/snapshot.json | 139 ---- .../Peipei1/014_Ending_Talk/meta.json | 11 - .../Peipei1/014_Ending_Talk/snapshot.json | 137 ---- DevSaveFiles/Peipei2/001_Start/meta.json | 11 - DevSaveFiles/Peipei2/001_Start/snapshot.json | 85 --- DevSaveFiles/Peipei2/002_Intro/meta.json | 11 - DevSaveFiles/Peipei2/002_Intro/snapshot.json | 85 --- DevSaveFiles/Peipei2/003_First_Heat/meta.json | 11 - .../Peipei2/003_First_Heat/snapshot.json | 97 --- .../Peipei2/004_Heat_System/meta.json | 11 - .../Peipei2/004_Heat_System/snapshot.json | 107 --- DevSaveFiles/Peipei2/005_Body_Check/meta.json | 11 - .../Peipei2/005_Body_Check/snapshot.json | 110 --- DevSaveFiles/Peipei2/006_UF_Locked/meta.json | 11 - .../Peipei2/006_UF_Locked/snapshot.json | 111 --- DevSaveFiles/Peipei2/007_UF_Shell/meta.json | 11 - .../Peipei2/007_UF_Shell/snapshot.json | 112 --- DevSaveFiles/Peipei2/008_UF_Check/meta.json | 11 - .../Peipei2/008_UF_Check/snapshot.json | 115 --- DevSaveFiles/Peipei2/009_Eye_View/meta.json | 11 - .../Peipei2/009_Eye_View/snapshot.json | 116 --- DevSaveFiles/Peipei2/010_Analysis/meta.json | 11 - .../Peipei2/010_Analysis/snapshot.json | 122 --- DevSaveFiles/Peipei2/011_Pre_Talk/meta.json | 11 - .../Peipei2/011_Pre_Talk/snapshot.json | 118 --- DevSaveFiles/Peipei2/012_Stop_Image/meta.json | 11 - .../Peipei2/012_Stop_Image/snapshot.json | 113 --- DevSaveFiles/Peipei2/013_Stop_Check/meta.json | 11 - .../Peipei2/013_Stop_Check/snapshot.json | 120 --- .../Peipei2/014_Cool_Fail_Talk/meta.json | 11 - .../Peipei2/014_Cool_Fail_Talk/snapshot.json | 118 --- DevSaveFiles/Peipei2/015_Remove_UF/meta.json | 11 - .../Peipei2/015_Remove_UF/snapshot.json | 122 --- DevSaveFiles/Peipei2/016_Pre_Talk_2/meta.json | 11 - .../Peipei2/016_Pre_Talk_2/snapshot.json | 113 --- DevSaveFiles/Peipei2/017_Surgery/meta.json | 11 - .../Peipei2/017_Surgery/snapshot.json | 115 --- .../Peipei2/018_Memory_Plugin/meta.json | 11 - .../Peipei2/018_Memory_Plugin/snapshot.json | 123 --- .../Peipei2/019_Ending_Talk/meta.json | 11 - .../Peipei2/019_Ending_Talk/snapshot.json | 120 --- DevSaveFiles/catalog.json | 417 ----------- Docs/AgentBridgePlan.md | 8 +- Docs/GameManagerRefactorPlan.md | 2 - Docs/存档系统设计方案.md | 9 +- Docs/风筝命令使用指南.md | 2 +- Tools/promote_day2sleep_test_saves.py | 112 --- Tools/promote_huoshan_test_saves.py | 139 ---- Tools/promote_peipei_test_saves.py | 99 --- 127 files changed, 26 insertions(+), 8158 deletions(-) delete mode 100644 Assets/Editor/SaveSystemValidation.meta delete mode 100644 Assets/Editor/SaveSystemValidation/DevSavePromoteWindow.cs delete mode 100644 Assets/Editor/SaveSystemValidation/DevSavePromoteWindow.cs.meta delete mode 100644 Assets/Editor/SaveSystemValidation/SaveSystemTestWindow.cs delete mode 100644 Assets/Editor/SaveSystemValidation/SaveSystemTestWindow.cs.meta delete mode 100644 Assets/Editor/SaveSystemValidation/SaveSystemValidationWindow.cs delete mode 100644 Assets/Editor/SaveSystemValidation/SaveSystemValidationWindow.cs.meta delete mode 100644 Assets/Scripts/SaveSystem/TestSaveArchive.cs delete mode 100644 Assets/Scripts/SaveSystem/TestSaveArchive.cs.meta delete mode 100644 Assets/Scripts/Utility/DevSaveCatalog.cs delete mode 100644 Assets/Scripts/Utility/DevSaveCatalog.cs.meta delete mode 100644 DevSaveFiles/Day0Prologue/001_Start/meta.json delete mode 100644 DevSaveFiles/Day0Prologue/001_Start/snapshot.json delete mode 100644 DevSaveFiles/Day1Begin/001_地铁ver5/meta.json delete mode 100644 DevSaveFiles/Day1Begin/001_地铁ver5/snapshot.json delete mode 100644 DevSaveFiles/Day1Mid/001_佩佩/meta.json delete mode 100644 DevSaveFiles/Day1Mid/001_佩佩/snapshot.json delete mode 100644 DevSaveFiles/Day1Night/001_酒吧6/meta.json delete mode 100644 DevSaveFiles/Day1Night/001_酒吧6/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/001_开场/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/001_开场/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/002_教室苏醒/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/002_教室苏醒/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/003_教室/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/003_教室/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/004_走廊/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/004_走廊/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/005_楼梯间/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/005_楼梯间/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/006_天台/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/006_天台/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/007_天文台/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/007_天文台/snapshot.json delete mode 100644 DevSaveFiles/Day1Sleep/008_海边/meta.json delete mode 100644 DevSaveFiles/Day1Sleep/008_海边/snapshot.json delete mode 100644 DevSaveFiles/Day2Mid/001_Start/meta.json delete mode 100644 DevSaveFiles/Day2Mid/001_Start/snapshot.json delete mode 100644 DevSaveFiles/Day2Night/001_Start/meta.json delete mode 100644 DevSaveFiles/Day2Night/001_Start/snapshot.json delete mode 100644 DevSaveFiles/Day2Night/002_BE/meta.json delete mode 100644 DevSaveFiles/Day2Night/002_BE/snapshot.json delete mode 100644 DevSaveFiles/GeneralEnd/001_Start/meta.json delete mode 100644 DevSaveFiles/GeneralEnd/001_Start/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/001_Intro/meta.json delete mode 100644 DevSaveFiles/Peipei1/001_Intro/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/002_Enter_Room/meta.json delete mode 100644 DevSaveFiles/Peipei1/002_Enter_Room/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/003_Body_UF/meta.json delete mode 100644 DevSaveFiles/Peipei1/003_Body_UF/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/004_UF_Deep/meta.json delete mode 100644 DevSaveFiles/Peipei1/004_UF_Deep/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/005_Body_Vision/meta.json delete mode 100644 DevSaveFiles/Peipei1/005_Body_Vision/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/006_Memory_Start/meta.json delete mode 100644 DevSaveFiles/Peipei1/006_Memory_Start/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/007_Memory_Check/meta.json delete mode 100644 DevSaveFiles/Peipei1/007_Memory_Check/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/008_Analysis/meta.json delete mode 100644 DevSaveFiles/Peipei1/008_Analysis/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/009_Pre_Talk/meta.json delete mode 100644 DevSaveFiles/Peipei1/009_Pre_Talk/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/010_Surgery/meta.json delete mode 100644 DevSaveFiles/Peipei1/010_Surgery/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/011_CutLine/meta.json delete mode 100644 DevSaveFiles/Peipei1/011_CutLine/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/012_Recheck/meta.json delete mode 100644 DevSaveFiles/Peipei1/012_Recheck/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/013_Recheck_Vision/meta.json delete mode 100644 DevSaveFiles/Peipei1/013_Recheck_Vision/snapshot.json delete mode 100644 DevSaveFiles/Peipei1/014_Ending_Talk/meta.json delete mode 100644 DevSaveFiles/Peipei1/014_Ending_Talk/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/001_Start/meta.json delete mode 100644 DevSaveFiles/Peipei2/001_Start/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/002_Intro/meta.json delete mode 100644 DevSaveFiles/Peipei2/002_Intro/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/003_First_Heat/meta.json delete mode 100644 DevSaveFiles/Peipei2/003_First_Heat/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/004_Heat_System/meta.json delete mode 100644 DevSaveFiles/Peipei2/004_Heat_System/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/005_Body_Check/meta.json delete mode 100644 DevSaveFiles/Peipei2/005_Body_Check/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/006_UF_Locked/meta.json delete mode 100644 DevSaveFiles/Peipei2/006_UF_Locked/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/007_UF_Shell/meta.json delete mode 100644 DevSaveFiles/Peipei2/007_UF_Shell/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/008_UF_Check/meta.json delete mode 100644 DevSaveFiles/Peipei2/008_UF_Check/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/009_Eye_View/meta.json delete mode 100644 DevSaveFiles/Peipei2/009_Eye_View/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/010_Analysis/meta.json delete mode 100644 DevSaveFiles/Peipei2/010_Analysis/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/011_Pre_Talk/meta.json delete mode 100644 DevSaveFiles/Peipei2/011_Pre_Talk/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/012_Stop_Image/meta.json delete mode 100644 DevSaveFiles/Peipei2/012_Stop_Image/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/013_Stop_Check/meta.json delete mode 100644 DevSaveFiles/Peipei2/013_Stop_Check/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/014_Cool_Fail_Talk/meta.json delete mode 100644 DevSaveFiles/Peipei2/014_Cool_Fail_Talk/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/015_Remove_UF/meta.json delete mode 100644 DevSaveFiles/Peipei2/015_Remove_UF/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/016_Pre_Talk_2/meta.json delete mode 100644 DevSaveFiles/Peipei2/016_Pre_Talk_2/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/017_Surgery/meta.json delete mode 100644 DevSaveFiles/Peipei2/017_Surgery/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/018_Memory_Plugin/meta.json delete mode 100644 DevSaveFiles/Peipei2/018_Memory_Plugin/snapshot.json delete mode 100644 DevSaveFiles/Peipei2/019_Ending_Talk/meta.json delete mode 100644 DevSaveFiles/Peipei2/019_Ending_Talk/snapshot.json delete mode 100644 DevSaveFiles/catalog.json delete mode 100644 Tools/promote_day2sleep_test_saves.py delete mode 100644 Tools/promote_huoshan_test_saves.py delete mode 100644 Tools/promote_peipei_test_saves.py diff --git a/.gitignore b/.gitignore index 16dfad5fc..d7073708f 100644 --- a/.gitignore +++ b/.gitignore @@ -78,9 +78,6 @@ crashlytics-build.properties # Local Save Files /[Aa]ssets/[Ss]treamingAssets/SaveFiles/* -# DevSaveFiles lives outside Assets; Unity metadata from the old location is not needed. -/DevSaveFiles/**/*.meta - # Never ignore DLLs in the FMOD subfolder. !/[Aa]ssets/Plugins/FMOD/**/lib/* diff --git a/Assets/Editor/DeveloperMode/DeveloperModePanelBuilder.cs b/Assets/Editor/DeveloperMode/DeveloperModePanelBuilder.cs index 21099cc57..260685419 100644 --- a/Assets/Editor/DeveloperMode/DeveloperModePanelBuilder.cs +++ b/Assets/Editor/DeveloperMode/DeveloperModePanelBuilder.cs @@ -15,6 +15,7 @@ namespace AibisDream.DeveloperMode.Editor { private const string PrefabPath = "Assets/GameContent/Feature_MainUI/Prefabs/DeveloperModePanel.prefab"; private const string ScenePath = "Assets/Scenes/Persistence.unity"; + private const string FontAssetPath = "Assets/Font/Assets/WenQuanYi Bitmap Song 14px SDF.asset"; private static readonly Color Background = new(0.025f, 0.045f, 0.065f, 0.97f); private static readonly Color Surface = new(0.055f, 0.085f, 0.11f, 0.96f); private static readonly Color Accent = new(0.16f, 0.75f, 0.88f, 1f); @@ -82,7 +83,7 @@ namespace AibisDream.DeveloperMode.Editor var tabs = CreateHorizontal("Tabs", root.transform, 4f, new RectOffset(4, 4, 3, 3)); SetAnchors(tabs.GetComponent(), new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(0f, -88f), new Vector2(0f, -46f)); - var tabNames = new[] { "概览", "日志", "Yarn 变量", "存档跳转", "显示与控制" }; + var tabNames = new[] { "概览", "日志", "Yarn 变量", "存档槽位", "显示与控制" }; var tabButtons = tabNames.Select(name => CreateButton($"Tab {name}", tabs.transform, name, 0f, 34f)).ToArray(); foreach (var button in tabButtons) { @@ -214,31 +215,17 @@ namespace AibisDream.DeveloperMode.Editor var page = CreateVertical("Saves Page", parent, 6f, new RectOffset(8, 8, 8, 8)); var toolbar = CreateHorizontal("Toolbar", page.transform, 6f, new RectOffset(0, 0, 0, 0)); AddLayout(toolbar, 38f); - var search = CreateInput("Save Search", toolbar.transform, "搜索开发检查点...", 350f); var reload = CreateButton("Reload Saves", toolbar.transform, "重新扫描", 110f, 34f); var status = CreateText("Save Status", toolbar.transform, "Ready", 14f); AddFlexible(status.gameObject); status.alignment = TextAlignmentOptions.MidlineRight; - var columns = CreateHorizontal("Save Columns", page.transform, 8f, new RectOffset(0, 0, 0, 0)); - var columnsLayout = columns.AddComponent(); - columnsLayout.flexibleHeight = 1f; - - var slotColumn = CreateVertical("Official Slots", columns.transform, 4f, new RectOffset(0, 0, 0, 0)); + var slotColumn = CreateVertical("Official Slots", page.transform, 4f, new RectOffset(0, 0, 0, 0)); var slotLayout = slotColumn.AddComponent(); - slotLayout.preferredWidth = 330f; slotLayout.flexibleHeight = 1f; var slotTitle = CreateText("Title", slotColumn.transform, "正式槽位(点击读档)", 16f, FontStyles.Bold); AddLayout(slotTitle.gameObject, 28f); - CreateList("Slot List", slotColumn.transform, 430f, out var slotContent, out var slotTemplate); - - var devColumn = CreateVertical("Dev Saves", columns.transform, 4f, new RectOffset(0, 0, 0, 0)); - var devLayout = devColumn.AddComponent(); - devLayout.flexibleWidth = 1f; - devLayout.flexibleHeight = 1f; - var devTitle = CreateText("Title", devColumn.transform, "开发检查点(严格恢复)", 16f, FontStyles.Bold); - AddLayout(devTitle.gameObject, 28f); - CreateList("Dev Save List", devColumn.transform, 430f, out var devContent, out var devTemplate); + CreateList("Slot List", slotColumn.transform, 500f, out var slotContent, out var slotTemplate); var paths1 = CreateHorizontal("Paths 1", page.transform, 5f, new RectOffset(0, 0, 0, 0)); AddLayout(paths1, 34f); @@ -246,26 +233,17 @@ namespace AibisDream.DeveloperMode.Editor var copySave = CreateButton("Copy Saves", paths1.transform, "复制存档路径", 130f, 30f); var openLog = CreateButton("Open Logs", paths1.transform, "打开日志目录", 130f, 30f); var copyLog = CreateButton("Copy Logs", paths1.transform, "复制日志路径", 130f, 30f); - var paths2 = CreateHorizontal("Paths 2", page.transform, 5f, new RectOffset(0, 0, 0, 0)); - AddLayout(paths2, 34f); - var openDev = CreateButton("Open Dev Saves", paths2.transform, "打开检查点目录", 140f, 30f); - var copyDev = CreateButton("Copy Dev Saves", paths2.transform, "复制检查点路径", 140f, 30f); - var openCurrent = CreateButton("Open Current Log", paths2.transform, "定位当前日志", 130f, 30f); - var copyCurrent = CreateButton("Copy Current Log", paths2.transform, "复制当前日志", 130f, 30f); + var openCurrent = CreateButton("Open Current Log", paths1.transform, "定位当前日志", 130f, 30f); + var copyCurrent = CreateButton("Copy Current Log", paths1.transform, "复制当前日志", 130f, 30f); - refs.Add("saveSearchInput", search); refs.Add("reloadSavesButton", reload.GetComponent