From 4597149228af9a12680faa5f6b4971831d5b1201 Mon Sep 17 00:00:00 2001
From: MuHua-123 <136542559+MuHua-123@users.noreply.github.com>
Date: Sat, 11 Oct 2025 17:27:10 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ModuleInput/InputControl/InputMenu.cs | 6 +-
.../ModuleUISMenu.meta} | 2 +-
.../ModuleUISMenu/Runtime.meta} | 2 +-
.../ModuleUISMenu/Runtime/ShortcutMenu.cs | 50 ++++++
.../Runtime/ShortcutMenu.cs.meta} | 2 +-
.../ModuleUISMenu/Runtime/ShortcutMenuItem.cs | 16 ++
.../Runtime/ShortcutMenuItem.cs.meta} | 2 +-
.../ModuleUISMenu/Runtime/UIMenuPanel.cs | 75 ++++++++
.../Runtime/UIMenuPanel.cs.meta} | 2 +-
.../ModuleUISMenu/Runtime/UIShortcutMenu.cs | 51 ++++++
.../Runtime}/UIShortcutMenu.cs.meta | 0
.../ModuleUISMenu/UI Toolkit.meta} | 2 +-
.../ModuleUISMenu/UI Toolkit/MenuPanel.meta} | 2 +-
.../UI Toolkit/MenuPanel/MenuPanel.uss} | 19 +-
.../UI Toolkit/MenuPanel/MenuPanel.uss.meta} | 2 +-
.../UI Toolkit/MenuPanel/MenuPanel.uxml | 11 ++
.../UI Toolkit/MenuPanel/MenuPanel.uxml.meta} | 0
.../UI Toolkit/MenuPanel/MenuTemplate.uxml} | 6 +-
.../MenuPanel/MenuTemplate.uxml.meta} | 0
.../UI Toolkit}/ShortcutMenu.meta | 0
.../UI Toolkit/ShortcutMenu/ShortcutMenu.uss | 7 +
.../ShortcutMenu/ShortcutMenu.uss.meta | 0
.../ShortcutMenu/ShortcutMenu.uxml | 0
.../ShortcutMenu/ShortcutMenu.uxml.meta | 0
Assets/ModuleSingle/SingleManager.cs | 7 +-
.../ModuleUIPanel/Component/UISliderInputH.cs | 48 -----
.../ModuleUIPanel/Component/UIVector2.cs | 64 -------
.../ModuleUIPanel/Component/UIVector3.cs | 63 -------
.../ModuleUIPanel/Component/UIVector3.cs.meta | 11 --
.../Component/UIVideoPlayPanel.cs | 113 ------------
.../ModuleUIPanel/Popup/Message/UIMessage1.cs | 25 ---
.../Popup/Message/UIMessage1.cs.meta | 11 --
.../ModuleUIPanel/Popup/Message/UIMessage2.cs | 31 ----
.../Popup/Message/UIMessage2.cs.meta | 11 --
.../ModuleUIPanel/Popup/Message/UIMessage3.cs | 31 ----
.../Popup/Message/UIMessage3.cs.meta | 11 --
.../ModuleUIPanel/Popup/UIBannerTip.cs | 18 --
.../ModuleUIPanel/Popup/UIBannerTip.cs.meta | 11 --
.../ModuleUIPanel/Popup/UIGuidance.cs | 132 --------------
.../ModuleUIPanel/Popup/UIGuidance.cs.meta | 11 --
.../ModuleUI/ModuleUIPanel/Popup/UILoading.cs | 31 ----
.../ModuleUIPanel/Popup/UILoading.cs.meta | 11 --
.../ModuleUIPanel/Popup/UIShortcutMenu.cs | 170 ------------------
.../ModuleUI/ModuleUISingle/UILoadManager.cs | 31 ----
.../ModuleUISingle/UILoadManager.cs.meta | 11 --
.../ModuleUI/ModuleUISingle/UIPopupManager.cs | 3 -
.../SampleScene/SampleScene.unity | 59 ++++--
Assets/UI Toolkit/Document/MainDocument.uxml | 4 +-
.../GamePopup/BannerTip/BannerTip.uss | 29 ---
.../GamePopup/BannerTip/BannerTip.uxml | 8 -
.../GamePopup/BannerTip/BannerTip.uxml.meta | 10 --
Assets/UI Toolkit/GamePopup/Guidance.meta | 8 -
.../GamePopup/Guidance/Guidance.uss | 30 ----
.../GamePopup/Guidance/Guidance.uss.meta | 11 --
.../GamePopup/Guidance/Guidance.uxml | 20 ---
.../GamePopup/Guidance/Guidance.uxml.meta | 10 --
Assets/UI Toolkit/GamePopup/Loading.meta | 8 -
.../UI Toolkit/GamePopup/Loading/Loading.uss | 1 -
.../GamePopup/Loading/Loading.uss.meta | 11 --
.../UI Toolkit/GamePopup/Loading/Loading.uxml | 13 --
.../GamePopup/Loading/Loading.uxml.meta | 10 --
Assets/UI Toolkit/GamePopup/Message.meta | 8 -
.../UI Toolkit/GamePopup/Message/Message.uss | 79 --------
.../GamePopup/Message/Message.uss.meta | 11 --
.../GamePopup/Message/Message1.uxml | 8 -
.../GamePopup/Message/Message1.uxml.meta | 10 --
.../GamePopup/Message/Message2.uxml | 9 -
.../GamePopup/Message/Message2.uxml.meta | 10 --
.../GamePopup/Message/Message3.uxml | 12 --
.../GamePopup/Message/Message3.uxml.meta | 10 --
.../GamePopup/ShortcutMenu/MenuTemplate.uxml | 11 --
71 files changed, 285 insertions(+), 1227 deletions(-)
rename Assets/{ModuleUI/ModuleUIPanel/Component.meta => ModuleCore/ModuleUISMenu.meta} (77%)
rename Assets/{ModuleUI/ModuleUIPanel/Popup.meta => ModuleCore/ModuleUISMenu/Runtime.meta} (77%)
create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs
rename Assets/{ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs.meta => ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs.meta} (83%)
create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs
rename Assets/{ModuleUI/ModuleUIPanel/Component/UIVector2.cs.meta => ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs.meta} (83%)
create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs
rename Assets/{ModuleUI/ModuleUIPanel/Component/UISliderInputH.cs.meta => ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs.meta} (83%)
create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/UIShortcutMenu.cs
rename Assets/{ModuleUI/ModuleUIPanel/Popup => ModuleCore/ModuleUISMenu/Runtime}/UIShortcutMenu.cs.meta (100%)
rename Assets/{ModuleUI/ModuleUIPanel/Popup/Message.meta => ModuleCore/ModuleUISMenu/UI Toolkit.meta} (77%)
rename Assets/{UI Toolkit/GamePopup/BannerTip.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel.meta} (77%)
rename Assets/{UI Toolkit/GamePopup/ShortcutMenu/ShortcutMenu.uss => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uss} (68%)
rename Assets/{UI Toolkit/GamePopup/BannerTip/BannerTip.uss.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uss.meta} (87%)
create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uxml
rename Assets/{UI Toolkit/GamePopup/ShortcutMenu/MenuTemplate.uxml.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uxml.meta} (100%)
rename Assets/{UI Toolkit/GamePopup/ShortcutMenu/ItemTemplate.uxml => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuTemplate.uxml} (65%)
rename Assets/{UI Toolkit/GamePopup/ShortcutMenu/ItemTemplate.uxml.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuTemplate.uxml.meta} (100%)
rename Assets/{UI Toolkit/GamePopup => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu.meta (100%)
create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit/ShortcutMenu/ShortcutMenu.uss
rename Assets/{UI Toolkit/GamePopup => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu/ShortcutMenu.uss.meta (100%)
rename Assets/{UI Toolkit/GamePopup => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu/ShortcutMenu.uxml (100%)
rename Assets/{UI Toolkit/GamePopup => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu/ShortcutMenu.uxml.meta (100%)
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Component/UISliderInputH.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Component/UIVector2.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Component/UIVector3.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Component/UIVector3.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/Message/UIMessage1.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/Message/UIMessage1.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/Message/UIMessage2.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/Message/UIMessage2.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/Message/UIMessage3.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/Message/UIMessage3.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UIBannerTip.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UIBannerTip.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UIGuidance.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UIGuidance.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UILoading.cs
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UILoading.cs.meta
delete mode 100644 Assets/ModuleUI/ModuleUIPanel/Popup/UIShortcutMenu.cs
delete mode 100644 Assets/ModuleUI/ModuleUISingle/UILoadManager.cs
delete mode 100644 Assets/ModuleUI/ModuleUISingle/UILoadManager.cs.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/BannerTip/BannerTip.uss
delete mode 100644 Assets/UI Toolkit/GamePopup/BannerTip/BannerTip.uxml
delete mode 100644 Assets/UI Toolkit/GamePopup/BannerTip/BannerTip.uxml.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Guidance.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Guidance/Guidance.uss
delete mode 100644 Assets/UI Toolkit/GamePopup/Guidance/Guidance.uss.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Guidance/Guidance.uxml
delete mode 100644 Assets/UI Toolkit/GamePopup/Guidance/Guidance.uxml.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Loading.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Loading/Loading.uss
delete mode 100644 Assets/UI Toolkit/GamePopup/Loading/Loading.uss.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Loading/Loading.uxml
delete mode 100644 Assets/UI Toolkit/GamePopup/Loading/Loading.uxml.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Message.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message.uss
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message.uss.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message1.uxml
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message1.uxml.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message2.uxml
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message2.uxml.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message3.uxml
delete mode 100644 Assets/UI Toolkit/GamePopup/Message/Message3.uxml.meta
delete mode 100644 Assets/UI Toolkit/GamePopup/ShortcutMenu/MenuTemplate.uxml
diff --git a/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs b/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs
index f75af3e..2f34e66 100644
--- a/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs
+++ b/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs
@@ -9,8 +9,6 @@ using MuHua;
///
public class InputMenu : InputControl {
- private UIMenuPanel menu;
-
protected override void ModuleInput_OnInputMode(InputMode mode) {
// throw new System.NotImplementedException();
}
@@ -19,11 +17,11 @@ public class InputMenu : InputControl {
/// 鼠标左键
public void OnMouseLeft(InputValue inputValue) {
if (inputValue.isPressed) return;
- UIPopupManager.I.shortcutMenu.Close();
+ ShortcutMenu.I.Close();
}
/// 鼠标右键
public void OnMouseRight(InputValue inputValue) {
- UIPopupManager.I.shortcutMenu.Open();
+ ShortcutMenu.I.Open();
}
#endregion
}
diff --git a/Assets/ModuleUI/ModuleUIPanel/Component.meta b/Assets/ModuleCore/ModuleUISMenu.meta
similarity index 77%
rename from Assets/ModuleUI/ModuleUIPanel/Component.meta
rename to Assets/ModuleCore/ModuleUISMenu.meta
index 98138f4..bb7e7f4 100644
--- a/Assets/ModuleUI/ModuleUIPanel/Component.meta
+++ b/Assets/ModuleCore/ModuleUISMenu.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 06f31db1c09e8a0409a8b3b960a13216
+guid: d73f0702f68e73243ab4c6940caafa59
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/ModuleUI/ModuleUIPanel/Popup.meta b/Assets/ModuleCore/ModuleUISMenu/Runtime.meta
similarity index 77%
rename from Assets/ModuleUI/ModuleUIPanel/Popup.meta
rename to Assets/ModuleCore/ModuleUISMenu/Runtime.meta
index 9f89994..ae1e763 100644
--- a/Assets/ModuleUI/ModuleUIPanel/Popup.meta
+++ b/Assets/ModuleCore/ModuleUISMenu/Runtime.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 1a20e449063139b4ea0d19bd0677c7d1
+guid: 6477bb920cf3e3a4fbaf3e01082e3ae3
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs
new file mode 100644
index 0000000..4b5f404
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using MuHua;
+
+///
+/// 快捷菜单
+///
+public class ShortcutMenu : Module {
+ /// 数据列表
+ public List menuItems = new List();
+
+ /// 打开菜单
+ public void Open() => UIShortcutMenu.I?.Open();
+
+ /// 关闭菜单
+ public void Close() => UIShortcutMenu.I?.Close();
+
+ /// 添加菜单项(1级菜单/2级菜单/3级菜单)
+ public void Add(string name, Action callback) {
+ string[] names = name.Split('/');
+ ShortcutMenuItem item = Find(names[0], menuItems, true);
+ for (int i = 1; i < names.Length; i++) {
+ item = Find(names[i], item.menuItems, true);
+ }
+ item.callback = callback;
+ }
+ /// 移除菜单项(???/???/子级菜单)
+ public void Remove(string name) {
+ string[] names = name.Split('/');
+ List menuItems = this.menuItems;
+ ShortcutMenuItem item = Find(names[0], menuItems, false);
+ for (int i = 1; i < names.Length; i++) {
+ if (item == null) return;
+ menuItems = item.menuItems;
+ item = Find(names[i], menuItems, false);
+ }
+ menuItems.Remove(item);
+ }
+
+ /// 子项目查找
+ private ShortcutMenuItem Find(string menu, List menuItems, bool isCreate) {
+ ShortcutMenuItem item = menuItems.Find(obj => obj.name == menu);
+ if (item != null || !isCreate) { return item; }
+ item = new ShortcutMenuItem { name = menu };
+ menuItems.Add(item);
+ return item;
+ }
+}
diff --git a/Assets/ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs.meta b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs.meta
similarity index 83%
rename from Assets/ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs.meta
rename to Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs.meta
index 52eabd7..5da2bd6 100644
--- a/Assets/ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs.meta
+++ b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 00c04ca4ef821d0469a77408648f5ff2
+guid: 23732e20aab811a4eba63cc0f810d659
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs
new file mode 100644
index 0000000..2da80cb
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+///
+/// 菜单项目
+///
+public class ShortcutMenuItem {
+ /// 名称
+ public string name;
+ /// 回调
+ public Action callback;
+ /// 子菜单项
+ public List menuItems = new List();
+}
diff --git a/Assets/ModuleUI/ModuleUIPanel/Component/UIVector2.cs.meta b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs.meta
similarity index 83%
rename from Assets/ModuleUI/ModuleUIPanel/Component/UIVector2.cs.meta
rename to Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs.meta
index a5f97ba..4884b7b 100644
--- a/Assets/ModuleUI/ModuleUIPanel/Component/UIVector2.cs.meta
+++ b/Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c0898288ac15d9a4e9a82e0d6d36ff17
+guid: fac2916b09800194a8389027d4b54ce8
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs b/Assets/ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs
new file mode 100644
index 0000000..2463bec
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UIElements;
+using MuHua;
+
+///
+/// UI快捷菜单面板
+///
+public class UIMenuPanel : ModuleUIPanel, UIControl {
+
+ public UIMenuPanel menuPanel;
+ public VisualElement submenu;
+ public ModuleUIItems items;
+
+ public VisualElement Container => Q("Container");
+
+ public UIMenuPanel(VisualElement element, VisualTreeAsset templateAsset) : base(element) {
+ items = new ModuleUIItems(Container, templateAsset,
+ (data, element) => new UIItem(data, element, this));
+ }
+ public void Update() {
+ // throw new NotImplementedException();
+ }
+ public void Dispose() {
+ items.Release();
+ }
+
+ public void Settings(Vector3 position, List datas) {
+ items.Create(datas);
+ element.transform.position = position;
+ }
+
+ /// 打开子菜单
+ public void Open(VisualElement submenu, List datas) {
+ if (this.submenu == submenu) { return; }
+ // 更新子菜单
+ this.submenu = submenu;
+ if (menuPanel == null) { menuPanel = UIShortcutMenu.I.Create(); }
+ float x = submenu.worldBound.position.x + submenu.resolvedStyle.width;
+ float y = submenu.worldBound.position.y - 4;
+ Vector3 position = new Vector3(x, y, 0);
+ menuPanel.Settings(position, datas);
+ bool isEnable = datas != null && datas.Count > 0;
+ menuPanel.OpenSubmenu(isEnable);
+ }
+ public void OpenSubmenu(bool open) {
+ element.EnableInClassList("menu-hide", !open);
+ menuPanel?.OpenSubmenu(false);
+ }
+
+ /// UI项目
+ public class UIItem : ModuleUIItem {
+ public readonly UIMenuPanel parent;
+
+ public Label Name => element.Q