using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
using MuHua;
///
/// UI快捷菜单
///
public class UIShortcutMenu : ModuleUISingle {
/// 菜单模板
public VisualTreeAsset MenuPanel;
/// 项目模板
public VisualTreeAsset MenuTemplate;
/// 控件列表
public static List controls = new List();
public Vector3 MousePosition => UITool.GetMousePosition(Element);
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(Vector3 position, List datas) {
Close();
UIMenuPanel menuPanel = Create();
menuPanel.Settings(position, datas);
}
/// 关闭菜单
public void Close() {
controls.ForEach(control => control.Dispose());
controls.Clear();
Element.Clear();
}
/// 创建子菜单
public UIMenuPanel Create() {
// 创建菜单元素
VisualElement element = MenuPanel.Instantiate();
element.EnableInClassList("menu", true);
Element.Add(element);
UIMenuPanel menuPanel = new UIMenuPanel(element, MenuTemplate);
controls.Add(menuPanel);
return menuPanel;
}
}