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 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, ShortcutMenu.I.menuItems);
}
/// 关闭菜单
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;
}
}