123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- using System.Collections;
- using System.Collections.Generic;
- using GameLogic.Combat.CombatTool.CombatReport;
- using UnityEditor;
- using UnityEngine;
- using UnityEngine.UIElements;
- using xy002Editor.CombatEditor;
- public class CombaReportEnditorManager : EditorWindow
- {
- [SerializeField] private VisualTreeAsset visualTreeAsset;
- private Dictionary<string, StyleSheet> allStyleSheets = new Dictionary<string, StyleSheet>();
- public Foldout myHeroRoot;
- public Foldout enemyHeroRoot;
- private Dictionary<CombatReportEntityInfo, HeroEntityCombatReport> allHeroReportEditors =
- new Dictionary<CombatReportEntityInfo, HeroEntityCombatReport>();
- [MenuItem("CombatData/实时战报分析")]
- public static void ShowExample()
- {
- CombaReportEnditorManager wnd = GetWindow<CombaReportEnditorManager>();
- wnd.titleContent = new GUIContent("CombatR");
- }
- public void CreateGUI()
- {
- // Each editor window contains a root VisualElement object
- VisualElement root = rootVisualElement;
- visualTreeAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/Editor/UIAsset/CombatR.uxml");
- foreach (var UPPER in visualTreeAsset.stylesheets)
- {
- allStyleSheets.Add(UPPER.name, UPPER);
- }
- ScrollView scrollView = new ScrollView();
- root.Add(scrollView);
- myHeroRoot = Copy<Foldout>("foldout_style");
- root.Add(myHeroRoot);
- enemyHeroRoot = Copy<Foldout>("foldout_style");
- root.Add(enemyHeroRoot);
- }
- public T Copy<T>(string name) where T : VisualElement, new()
- {
- T root1 = new T();
- // root1.styleSheets.Clear();
-
- StyleSheet styleSheet = GetUUS("CombatR");
-
- if (styleSheet != null)
- {
- root1.styleSheets.Add(styleSheet);
- }
- root1.AddToClassList(name);
- root1.visible = true;
- return root1;
- }
- public StyleSheet GetUUS(string name)
- {
- if (allStyleSheets.ContainsKey(name))
- {
- return allStyleSheets[name];
- }
- return null;
- }
- private void CretaHeroEditor(CombatReportEntityInfo combatReportHeroInfo)
- {
- HeroEntityCombatReport heroReportEditor = new HeroEntityCombatReport();
- heroReportEditor.Init(combatReportHeroInfo, this);
- allHeroReportEditors.Add(combatReportHeroInfo, heroReportEditor);
- }
- private void Update()
- {
- Repaint();
- }
- private void OnGUI()
- {
- foreach (var VARIABLE in allHeroReportEditors.Values)
- {
- VARIABLE.OnGUI();
- }
- List<CombatReportEntityInfo> allCombatReportInfo = CombatReportManager.Instance.allCombatReportInfo;
- List<CombatReportEntityInfo> remove = new List<CombatReportEntityInfo>();
- for (int i = 0; i < allCombatReportInfo.Count; i++)
- {
- if (!allHeroReportEditors.ContainsKey(allCombatReportInfo[i]))
- {
- CretaHeroEditor(allCombatReportInfo[i]);
- }
- }
- foreach (var UPPER in allHeroReportEditors.Keys)
- {
- if (!allCombatReportInfo.Contains(UPPER))
- {
- allHeroReportEditors[UPPER].Dispose();
- remove.Add(UPPER);
- }
- }
- for (int i = 0; i < remove.Count; i++)
- {
- allHeroReportEditors.Remove(remove[i]);
- }
- }
- }
|