From 64938f113712a13794c577f2a7ca641e68c1e8ef Mon Sep 17 00:00:00 2001 From: MuHua-123 <136542559+MuHua-123@users.noreply.github.com> Date: Wed, 12 Nov 2025 10:19:42 +0800 Subject: [PATCH] 1 --- .../ModuleInput/InputControl/InputMenu.cs | 12 +- .../ModuleUI/ModuleUISingle/UIShortcutMenu.cs | 169 ------------------ Assets/ModuleCore/ModuleUISMenu.meta | 8 + Assets/ModuleCore/ModuleUISMenu/Assets.meta | 8 + .../ModuleCore/ModuleUISMenu/Assets/箭头.png | Bin 0 -> 398 bytes .../ModuleUISMenu/Assets/箭头.png.meta | 140 +++++++++++++++ Assets/ModuleCore/ModuleUISMenu/Runtime.meta | 8 + .../ModuleUISMenu/Runtime/ShortcutMenu.cs | 50 ++++++ .../Runtime/ShortcutMenu.cs.meta} | 2 +- .../ModuleUISMenu/Runtime/ShortcutMenuItem.cs | 16 ++ .../Runtime/ShortcutMenuItem.cs.meta | 11 ++ .../ModuleUISMenu/Runtime/UIMenuPanel.cs | 75 ++++++++ .../ModuleUISMenu/Runtime/UIMenuPanel.cs.meta | 11 ++ .../ModuleUISMenu/Runtime/UIShortcutMenu.cs | 52 ++++++ .../Runtime/UIShortcutMenu.cs.meta | 14 ++ .../ModuleCore/ModuleUISMenu/UI Toolkit.meta | 8 + .../ModuleUISMenu/UI Toolkit/MenuPanel.meta | 8 + .../UI Toolkit/MenuPanel/MenuPanel.uss | 28 +++ .../UI Toolkit/MenuPanel/MenuPanel.uss.meta} | 5 +- .../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/{ModuleCore => }/ModuleSingle.meta | 0 .../ModuleSingle/SingleManager.cs | 0 .../ModuleSingle/SingleManager.cs.meta | 0 Assets/{ModuleCore => }/ModuleTools.meta | 0 Assets/{ModuleCore => }/ModuleTools/Dice.cs | 0 .../{ModuleCore => }/ModuleTools/Dice.cs.meta | 0 Assets/{ModuleCore => }/ModuleUI.meta | 0 Assets/{ModuleCore => }/ModuleUI/ModuleUI.cs | 0 .../ModuleUI/ModuleUI.cs.meta | 0 .../ModuleUI/ModuleUIPage.meta | 0 .../ModuleUI/ModuleUIPanel.meta | 0 .../ModuleUI/ModuleUIPanel/Component.meta | 0 .../ModuleUIPanel/Component/UISliderInputH.cs | 0 .../Component/UISliderInputH.cs.meta | 0 .../ModuleUIPanel/Component/UIVector2.cs | 0 .../ModuleUIPanel/Component/UIVector2.cs.meta | 0 .../ModuleUIPanel/Component/UIVector3.cs | 0 .../ModuleUIPanel/Component/UIVector3.cs.meta | 0 .../Component/UIVideoPlayPanel.cs | 0 .../Component/UIVideoPlayPanel.cs.meta | 0 .../ModuleUI/ModuleUIPanel/UIPopup.meta | 0 .../ModuleUIPanel/UIPopup/Message.meta | 0 .../UIPopup/Message/UIMessage1.cs | 0 .../UIPopup/Message/UIMessage1.cs.meta | 0 .../UIPopup/Message/UIMessage2.cs | 0 .../UIPopup/Message/UIMessage2.cs.meta | 0 .../UIPopup/Message/UIMessage3.cs | 0 .../UIPopup/Message/UIMessage3.cs.meta | 0 .../ModuleUIPanel/UIPopup/UIBannerTip.cs | 0 .../ModuleUIPanel/UIPopup/UIBannerTip.cs.meta | 0 .../ModuleUIPanel/UIPopup/UIGuidance.cs | 0 .../ModuleUIPanel/UIPopup/UIGuidance.cs.meta | 0 .../ModuleUIPanel/UIPopup/UILoading.cs | 0 .../ModuleUIPanel/UIPopup/UILoading.cs.meta | 0 .../ModuleUI/ModuleUISingle.meta | 0 .../ModuleUI/ModuleUISingle/UILoadManager.cs | 0 .../ModuleUISingle/UILoadManager.cs.meta | 0 .../ModuleUI/ModuleUISingle/UIPopupManager.cs | 0 .../ModuleUISingle/UIPopupManager.cs.meta | 0 Assets/UI Toolkit/Document/TestDocument.uxml | 5 - .../GamePanel/ShortcutMenu/MenuTemplate.uxml | 11 -- .../GamePanel/ShortcutMenu/ShortcutMenu.uss | 32 ---- 70 files changed, 469 insertions(+), 228 deletions(-) delete mode 100644 Assets/ModuleCore/ModuleUI/ModuleUISingle/UIShortcutMenu.cs create mode 100644 Assets/ModuleCore/ModuleUISMenu.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/Assets.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/Assets/箭头.png create mode 100644 Assets/ModuleCore/ModuleUISMenu/Assets/箭头.png.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenu.cs rename Assets/ModuleCore/{ModuleUI/ModuleUISingle/UIShortcutMenu.cs.meta => ModuleUISMenu/Runtime/ShortcutMenu.cs.meta} (83%) create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/ShortcutMenuItem.cs.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/UIMenuPanel.cs.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/UIShortcutMenu.cs create mode 100644 Assets/ModuleCore/ModuleUISMenu/Runtime/UIShortcutMenu.cs.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel.meta create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uss rename Assets/{UI Toolkit/Document/TestDocument.uxml.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uss.meta} (58%) create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uxml rename Assets/{UI Toolkit/GamePanel/ShortcutMenu/MenuTemplate.uxml.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuPanel.uxml.meta} (100%) rename Assets/{UI Toolkit/GamePanel/ShortcutMenu/ItemTemplate.uxml => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuTemplate.uxml} (65%) rename Assets/{UI Toolkit/GamePanel/ShortcutMenu/ItemTemplate.uxml.meta => ModuleCore/ModuleUISMenu/UI Toolkit/MenuPanel/MenuTemplate.uxml.meta} (100%) rename Assets/{UI Toolkit/GamePanel => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu.meta (100%) create mode 100644 Assets/ModuleCore/ModuleUISMenu/UI Toolkit/ShortcutMenu/ShortcutMenu.uss rename Assets/{UI Toolkit/GamePanel => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu/ShortcutMenu.uss.meta (100%) rename Assets/{UI Toolkit/GamePanel => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu/ShortcutMenu.uxml (100%) rename Assets/{UI Toolkit/GamePanel => ModuleCore/ModuleUISMenu/UI Toolkit}/ShortcutMenu/ShortcutMenu.uxml.meta (100%) rename Assets/{ModuleCore => }/ModuleSingle.meta (100%) rename Assets/{ModuleCore => }/ModuleSingle/SingleManager.cs (100%) rename Assets/{ModuleCore => }/ModuleSingle/SingleManager.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleTools.meta (100%) rename Assets/{ModuleCore => }/ModuleTools/Dice.cs (100%) rename Assets/{ModuleCore => }/ModuleTools/Dice.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUI.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUI.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPage.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UISliderInputH.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UISliderInputH.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UIVector2.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UIVector2.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UIVector3.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UIVector3.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/Component/UIVideoPlayPanel.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message/UIMessage1.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message/UIMessage1.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message/UIMessage2.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message/UIMessage2.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message/UIMessage3.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/Message/UIMessage3.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/UIBannerTip.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/UIBannerTip.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/UIGuidance.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/UIGuidance.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/UILoading.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUIPanel/UIPopup/UILoading.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUISingle.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUISingle/UILoadManager.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUISingle/UILoadManager.cs.meta (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUISingle/UIPopupManager.cs (100%) rename Assets/{ModuleCore => }/ModuleUI/ModuleUISingle/UIPopupManager.cs.meta (100%) delete mode 100644 Assets/UI Toolkit/Document/TestDocument.uxml delete mode 100644 Assets/UI Toolkit/GamePanel/ShortcutMenu/MenuTemplate.uxml delete mode 100644 Assets/UI Toolkit/GamePanel/ShortcutMenu/ShortcutMenu.uss diff --git a/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs b/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs index 59a6e37..1ea789c 100644 --- a/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs +++ b/Assets/ModuleCore/ModuleInput/InputControl/InputMenu.cs @@ -9,7 +9,7 @@ using MuHua; /// public class InputMenu : InputControl { - private UIMenuPanel menu; + // private UIMenuPanel menu; protected override void ModuleInput_OnInputMode(InputMode mode) { // throw new System.NotImplementedException(); @@ -19,16 +19,16 @@ public class InputMenu : InputControl { /// 鼠标左键 public void OnMouseLeft(InputValue inputValue) { if (inputValue.isPressed) return; - UIShortcutMenu.I.Close(); + // UIShortcutMenu.I.Close(); } /// 鼠标右键 public void OnMouseRight(InputValue inputValue) { - UIShortcutMenu.I.Add("测试1/测试11", () => { Debug.Log("测试1/测试11"); }); - UIShortcutMenu.I.Add("测试1/测试12", () => { Debug.Log("测试1/测试12"); }); + // UIShortcutMenu.I.Add("测试1/测试11", () => { Debug.Log("测试1/测试11"); }); + // UIShortcutMenu.I.Add("测试1/测试12", () => { Debug.Log("测试1/测试12"); }); - UIShortcutMenu.I.Add("测试2", () => { Debug.Log("测试2"); }); + // UIShortcutMenu.I.Add("测试2", () => { Debug.Log("测试2"); }); - UIShortcutMenu.I.Open(); + // UIShortcutMenu.I.Open(); } #endregion } diff --git a/Assets/ModuleCore/ModuleUI/ModuleUISingle/UIShortcutMenu.cs b/Assets/ModuleCore/ModuleUI/ModuleUISingle/UIShortcutMenu.cs deleted file mode 100644 index efe6aff..0000000 --- a/Assets/ModuleCore/ModuleUI/ModuleUISingle/UIShortcutMenu.cs +++ /dev/null @@ -1,169 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.UIElements; -using MuHua; - -/// -/// UI快捷菜单 -/// -public class UIShortcutMenu : ModuleUISingle { - /// 菜单模板 - public VisualTreeAsset menuTreeAsset; - /// 项目模板 - public VisualTreeAsset itemTreeAsset; - - /// 数据列表 - public List datas = new List(); - /// 控件列表 - public static List controls = new List(); - - public override VisualElement Element => root.Q("ShortcutMenu"); - - protected override void Awake() => NoReplace(false); - - private void Update() => controls.ForEach(control => control.Update()); - - private void OnDestroy() => controls.ForEach(control => control.Dispose()); - - /// 打开菜单 - public void Open() { - Close(); - Vector3 position = UITool.GetMousePosition(Element); - UIMenuPanel menuPanel = Create(); - menuPanel.Settings(position, datas); - } - /// 关闭菜单 - public void Close() { - controls.ForEach(control => control.Dispose()); - controls.Clear(); - Element.Clear(); - } - /// 创建子菜单 - public UIMenuPanel Create() { - // 创建菜单元素 - VisualElement element = menuTreeAsset.Instantiate(); - element.EnableInClassList("menu", true); - Element.Add(element); - UIMenuPanel menuPanel = new UIMenuPanel(element, itemTreeAsset); - controls.Add(menuPanel); - return menuPanel; - } - - /// 添加菜单项(方法) - public void Add(string name, Action callback) { - string[] names = name.Split('/'); - - List datas = this.datas; - for (int i = 0; i < names.Length; i++) { - string menu = names[i]; - DataMenuItem item = datas.Find(obj => obj.name == menu); - if (item == null) { - item = new DataMenuItem { name = menu }; - if (i == names.Length - 1) { item.callback = callback; } - datas.Add(item); - } - datas = item.items; - } - } - /// 移除菜单项 - public void Remove(string name) { - string[] names = name.Split('/'); - List datas = this.datas; - DataMenuItem parent = null; - DataMenuItem target = null; - - for (int i = 0; i < names.Length; i++) { - string menu = names[i]; - target = datas.Find(obj => obj.name == menu); - if (target == null) return; // 未找到,直接返回 - if (i == names.Length - 1) { - // 找到要移除的项 - datas.Remove(target); - return; - } - parent = target; - datas = target.items; - } - } -} -/// -/// 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 - 5; - 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