From dfd37778b600a9dee2dd8bd0ec865e2660826c42 Mon Sep 17 00:00:00 2001
From: SepComet <202308010230@stu.csust.edu.cn>
Date: Sat, 28 Feb 2026 18:39:20 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E6=B7=BB=E5=8A=A0=20MainForm=20-=20?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=20ResolutionAdapterComponent=20=E8=BF=9B?=
=?UTF-8?q?=E8=A1=8C=E5=B1=8F=E5=B9=95=E5=88=86=E8=BE=A8=E7=8E=87=E9=80=82?=
=?UTF-8?q?=E9=85=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 1 +
Assets/GameMain/DataTables/UIForm.txt | 5 +-
.../GameMain/Scripts/Base/GameEntry.Custom.cs | 24 +-
.../ResolutionAdapterComponent.cs | 445 +++++++++++++++++
.../ResolutionAdapterComponent.cs.meta | 11 +
.../Scripts/Definition/Enum/UIFormType.cs | 5 +
Assets/GameMain/Scripts/Event/EventForm.meta | 3 +
.../EventOptionItemSelectedEventArgs.cs | 0
.../EventOptionItemSelectedEventArgs.cs.meta | 0
Assets/GameMain/Scripts/Event/Game.meta | 3 +
.../Event/Game/NodeCompleteEventArgs.cs | 27 ++
.../Event/Game/NodeCompleteEventArgs.cs.meta | 3 +
.../Scripts/Event/Game/NodeEnterEventArgs.cs | 27 ++
.../Event/Game/NodeEnterEventArgs.cs.meta | 3 +
.../{ => Game}/TestMenuNodeClickEventArgs.cs | 0
.../TestMenuNodeClickEventArgs.cs.meta | 0
Assets/GameMain/Scripts/Event/MainForm.meta | 3 +
.../MainForm/RepoButtonClickedEventArgs.cs | 27 ++
.../RepoButtonClickedEventArgs.cs.meta | 3 +
.../MainForm/ReturnButtonClickedEventArgs.cs | 27 ++
.../ReturnButtonClickedEventArgs.cs.meta | 3 +
Assets/GameMain/Scripts/Event/RepoForm.meta | 3 +
.../CombineSlotClickedEventArgs.cs | 0
.../CombineSlotClickedEventArgs.cs.meta | 0
.../RepoItemSelectedEventArgs.cs | 0
.../RepoItemSelectedEventArgs.cs.meta | 0
.../Scripts/Procedure/ProcedureMenu.cs | 32 +-
.../UI/GameScene/Context/MainFormContext.cs | 6 +
.../GameScene/Context/MainFormContext.cs.meta | 11 +
.../Controller/MainFormController.cs | 79 +++
.../Controller/MainFormController.cs.meta | 11 +
.../UI/GameScene/UseCase/EventFormUseCase.cs | 5 +-
.../Scripts/UI/GameScene/View/MainForm.cs | 49 ++
.../UI/GameScene/View/MainForm.cs.meta | 11 +
Assets/GameMain/UI/UIForms/MainForm.prefab | 452 ++++++++++++++++++
.../GameMain/UI/UIForms/MainForm.prefab.meta | 7 +
.../GameMain/UI/UIItems/CommonButton.prefab | 40 +-
Assets/Launcher.unity | 53 +-
docs/TODO.md | 6 +
39 files changed, 1365 insertions(+), 20 deletions(-)
create mode 100644 Assets/GameMain/Scripts/CustomComponent/ResolutionAdapterComponent.cs
create mode 100644 Assets/GameMain/Scripts/CustomComponent/ResolutionAdapterComponent.cs.meta
create mode 100644 Assets/GameMain/Scripts/Event/EventForm.meta
rename Assets/GameMain/Scripts/Event/{ => EventForm}/EventOptionItemSelectedEventArgs.cs (100%)
rename Assets/GameMain/Scripts/Event/{ => EventForm}/EventOptionItemSelectedEventArgs.cs.meta (100%)
create mode 100644 Assets/GameMain/Scripts/Event/Game.meta
create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeCompleteEventArgs.cs
create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeCompleteEventArgs.cs.meta
create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeEnterEventArgs.cs
create mode 100644 Assets/GameMain/Scripts/Event/Game/NodeEnterEventArgs.cs.meta
rename Assets/GameMain/Scripts/Event/{ => Game}/TestMenuNodeClickEventArgs.cs (100%)
rename Assets/GameMain/Scripts/Event/{ => Game}/TestMenuNodeClickEventArgs.cs.meta (100%)
create mode 100644 Assets/GameMain/Scripts/Event/MainForm.meta
create mode 100644 Assets/GameMain/Scripts/Event/MainForm/RepoButtonClickedEventArgs.cs
create mode 100644 Assets/GameMain/Scripts/Event/MainForm/RepoButtonClickedEventArgs.cs.meta
create mode 100644 Assets/GameMain/Scripts/Event/MainForm/ReturnButtonClickedEventArgs.cs
create mode 100644 Assets/GameMain/Scripts/Event/MainForm/ReturnButtonClickedEventArgs.cs.meta
create mode 100644 Assets/GameMain/Scripts/Event/RepoForm.meta
rename Assets/GameMain/Scripts/Event/{ => RepoForm}/CombineSlotClickedEventArgs.cs (100%)
rename Assets/GameMain/Scripts/Event/{ => RepoForm}/CombineSlotClickedEventArgs.cs.meta (100%)
rename Assets/GameMain/Scripts/Event/{ => RepoForm}/RepoItemSelectedEventArgs.cs (100%)
rename Assets/GameMain/Scripts/Event/{ => RepoForm}/RepoItemSelectedEventArgs.cs.meta (100%)
create mode 100644 Assets/GameMain/Scripts/UI/GameScene/Context/MainFormContext.cs
create mode 100644 Assets/GameMain/Scripts/UI/GameScene/Context/MainFormContext.cs.meta
create mode 100644 Assets/GameMain/Scripts/UI/GameScene/Controller/MainFormController.cs
create mode 100644 Assets/GameMain/Scripts/UI/GameScene/Controller/MainFormController.cs.meta
create mode 100644 Assets/GameMain/Scripts/UI/GameScene/View/MainForm.cs
create mode 100644 Assets/GameMain/Scripts/UI/GameScene/View/MainForm.cs.meta
create mode 100644 Assets/GameMain/UI/UIForms/MainForm.prefab
create mode 100644 Assets/GameMain/UI/UIForms/MainForm.prefab.meta
diff --git a/.gitignore b/.gitignore
index 46c0c15..7dcfacd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -104,3 +104,4 @@ AGENTS.md
/.dotnet-home
/[Aa]ssets/RawResources
/[Aa]ssets/RawResources.meta
+/docs/TODO.md
diff --git a/Assets/GameMain/DataTables/UIForm.txt b/Assets/GameMain/DataTables/UIForm.txt
index ec55e18..969d161 100644
--- a/Assets/GameMain/DataTables/UIForm.txt
+++ b/Assets/GameMain/DataTables/UIForm.txt
@@ -6,6 +6,7 @@
100 主菜单 MenuForm Default False True
101 设置 SettingForm Default False True
102 关于 AboutForm Default False True
- 150 测试UI TestMenuForm Default False True
- 200 事件UI EventForm Default False True
+ 103 主UI MainForm Default False True
+ 150 测试UI TestMenuForm Default False False
+ 200 事件UI EventForm Default False False
201 背包UI RepoForm Default False True
diff --git a/Assets/GameMain/Scripts/Base/GameEntry.Custom.cs b/Assets/GameMain/Scripts/Base/GameEntry.Custom.cs
index 1233e3c..c1bfed6 100644
--- a/Assets/GameMain/Scripts/Base/GameEntry.Custom.cs
+++ b/Assets/GameMain/Scripts/Base/GameEntry.Custom.cs
@@ -1,31 +1,25 @@
-//------------------------------------------------------------
-// Game Framework
-// Copyright © 2013-2021 Jiang Yin. All rights reserved.
-// Homepage: https://gameframework.cn/
-// Feedback: mailto:ellan@gameframework.cn
-//------------------------------------------------------------
-
-using CustomComponent;
+using CustomComponent;
using GeometryTD.CustomComponent;
-using UnityEngine;
///
/// 游戏入口。
///
-public partial class GameEntry : MonoBehaviour
+public partial class GameEntry
{
public static BuiltinDataComponent BuiltinData { get; private set; }
public static HPBarComponent HPBar { get; private set; }
public static UIRouterComponent UIRouter { get; private set; }
-
+
public static EventNodeComponent EventNode { get; private set; }
public static CombatNodeComponent CombatNode { get; private set; }
-
+
public static ShopNodeComponent ShopNode { get; private set; }
+ public static ResolutionAdapterComponent ResolutionAdapter { get; private set; }
+
private static void InitCustomComponents()
{
BuiltinData = UnityGameFramework.Runtime.GameEntry.GetComponent();
@@ -34,5 +28,11 @@ public partial class GameEntry : MonoBehaviour
EventNode = UnityGameFramework.Runtime.GameEntry.GetComponent();
CombatNode = UnityGameFramework.Runtime.GameEntry.GetComponent();
ShopNode = UnityGameFramework.Runtime.GameEntry.GetComponent();
+ ResolutionAdapter = UnityGameFramework.Runtime.GameEntry.GetComponent();
+ if (ResolutionAdapter == null)
+ {
+ UnityGameFramework.Runtime.Log.Warning(
+ "ResolutionAdapterComponent is missing. Please add it in Launcher scene and inject UI roots.");
+ }
}
}
diff --git a/Assets/GameMain/Scripts/CustomComponent/ResolutionAdapterComponent.cs b/Assets/GameMain/Scripts/CustomComponent/ResolutionAdapterComponent.cs
new file mode 100644
index 0000000..3a39863
--- /dev/null
+++ b/Assets/GameMain/Scripts/CustomComponent/ResolutionAdapterComponent.cs
@@ -0,0 +1,445 @@
+using System.Collections.Generic;
+using GameFramework.Event;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityGameFramework.Runtime;
+
+namespace GeometryTD.CustomComponent
+{
+ ///
+ /// Keeps gameplay camera and UI in a fixed design aspect, then fills extra area with black masks.
+ ///
+ public class ResolutionAdapterComponent : GameFrameworkComponent
+ {
+ private const float DefaultCanvasPlaneDistance = 100f;
+
+ [SerializeField] private Vector2 _referenceResolution = new Vector2(2560f, 1600f);
+ [SerializeField] private bool _adaptUiCanvasToViewport = true;
+ [SerializeField] private bool _enableBlackMask = true;
+ [SerializeField] private List _uiRoots = new List();
+
+ private readonly List