浏览代码

Merge branch 'master' of http://192.168.123.2:3000/ck/XiuXianGame

# Conflicts:
#	Excel2Json/Excel/skill.xlsx   resolved by origin/master(远端) version
#	UserSettings/Layouts/default-2022.dwlt   resolved by origin/master(远端) version
#	XiuXianGame.sln.DotSettings.user   resolved by origin/master(远端) version
lzx 20 小时之前
父节点
当前提交
1fc2ad16e5
共有 100 个文件被更改,包括 2608 次插入17 次删除
  1. 8 0
      Assets/Editor/CombatEditor.meta
  2. 122 0
      Assets/Editor/CombatEditor/CombaReportEnditorManager.cs
  3. 11 0
      Assets/Editor/CombatEditor/CombaReportEnditorManager.cs.meta
  4. 17 0
      Assets/Editor/CombatEditor/CombatEditor.asmdef
  5. 7 0
      Assets/Editor/CombatEditor/CombatEditor.asmdef.meta
  6. 52 0
      Assets/Editor/CombatEditor/CombatPeportMassgeModle.cs
  7. 3 0
      Assets/Editor/CombatEditor/CombatPeportMassgeModle.cs.meta
  8. 156 0
      Assets/Editor/CombatEditor/HeroEntityCombatReport.cs
  9. 3 0
      Assets/Editor/CombatEditor/HeroEntityCombatReport.cs.meta
  10. 11 0
      Assets/Editor/CombatEditor/HeroValueReport.cs
  11. 3 0
      Assets/Editor/CombatEditor/HeroValueReport.cs.meta
  12. 47 0
      Assets/Editor/CombatEditor/ProgressBarShowModle.cs
  13. 3 0
      Assets/Editor/CombatEditor/ProgressBarShowModle.cs.meta
  14. 8 0
      Assets/Editor/UIAsset.meta
  15. 36 0
      Assets/Editor/UIAsset/AssetBundleEditor.uxml
  16. 10 0
      Assets/Editor/UIAsset/AssetBundleEditor.uxml.meta
  17. 10 0
      Assets/Editor/UIAsset/AssetBundleUXML.uxml
  18. 10 0
      Assets/Editor/UIAsset/AssetBundleUXML.uxml.meta
  19. 16 0
      Assets/Editor/UIAsset/BuildEditor.uxml
  20. 10 0
      Assets/Editor/UIAsset/BuildEditor.uxml.meta
  21. 48 0
      Assets/Editor/UIAsset/CombatHeroConfig.uxml
  22. 10 0
      Assets/Editor/UIAsset/CombatHeroConfig.uxml.meta
  23. 30 0
      Assets/Editor/UIAsset/CombatR.cs
  24. 12 0
      Assets/Editor/UIAsset/CombatR.cs.meta
  25. 64 0
      Assets/Editor/UIAsset/CombatR.uss
  26. 11 0
      Assets/Editor/UIAsset/CombatR.uss.meta
  27. 24 0
      Assets/Editor/UIAsset/CombatR.uxml
  28. 10 0
      Assets/Editor/UIAsset/CombatR.uxml.meta
  29. 44 0
      Assets/Editor/UIAsset/CombatReproUI.uxml
  30. 10 0
      Assets/Editor/UIAsset/CombatReproUI.uxml.meta
  31. 17 0
      Assets/Editor/UIAsset/CombatSever.uxml
  32. 10 0
      Assets/Editor/UIAsset/CombatSever.uxml.meta
  33. 38 0
      Assets/Editor/UIAsset/New Panel Settings.asset
  34. 8 0
      Assets/Editor/UIAsset/New Panel Settings.asset.meta
  35. 46 0
      Assets/Editor/UIAsset/NewCombatUI.uxml
  36. 10 0
      Assets/Editor/UIAsset/NewCombatUI.uxml.meta
  37. 1 0
      Assets/Editor/UIAsset/NewTSSFile 1.tss
  38. 11 0
      Assets/Editor/UIAsset/NewTSSFile 1.tss.meta
  39. 1 0
      Assets/Editor/UIAsset/NewTSSFile.tss
  40. 11 0
      Assets/Editor/UIAsset/NewTSSFile.tss.meta
  41. 1 0
      Assets/Editor/UIAsset/NewUSSFile.uss
  42. 11 0
      Assets/Editor/UIAsset/NewUSSFile.uss.meta
  43. 9 0
      Assets/Editor/UIAsset/NewUXMLTemplate.uxml
  44. 10 0
      Assets/Editor/UIAsset/NewUXMLTemplate.uxml.meta
  45. 2 0
      Assets/Editor/UIAsset/UnityDefaultRuntimeTheme.tss
  46. 11 0
      Assets/Editor/UIAsset/UnityDefaultRuntimeTheme.tss.meta
  47. 0 0
      Assets/Editor/UIAsset/aaa.uss
  48. 11 0
      Assets/Editor/UIAsset/aaa.uss.meta
  49. 19 0
      Assets/Editor/UIAsset/aaaw.uss
  50. 11 0
      Assets/Editor/UIAsset/aaaw.uss.meta
  51. 20 0
      Assets/Editor/UIAsset/assetBundle.uss
  52. 11 0
      Assets/Editor/UIAsset/assetBundle.uss.meta
  53. 64 0
      Assets/Editor/UIAsset/combatreporuss.uss
  54. 11 0
      Assets/Editor/UIAsset/combatreporuss.uss.meta
  55. 3 0
      Assets/Editor/UIAsset/hid.uss
  56. 11 0
      Assets/Editor/UIAsset/hid.uss.meta
  57. 0 0
      Assets/Editor/UIAsset/hvalue.uss
  58. 11 0
      Assets/Editor/UIAsset/hvalue.uss.meta
  59. 99 0
      Assets/Editor/UIAsset/root1.uss
  60. 11 0
      Assets/Editor/UIAsset/root1.uss.meta
  61. 10 0
      Assets/Editor/UIAsset/simulationcombat.uss
  62. 11 0
      Assets/Editor/UIAsset/simulationcombat.uss.meta
  63. 2 1
      Assets/Res/Config/GameConstantConfig.json
  64. 4 4
      Assets/Res/Config/HeroModelConfig.json
  65. 1 1
      Assets/Scenes/testCombat.scene
  66. 8 0
      Assets/Scripts/Core/BattleReport.meta
  67. 8 0
      Assets/Scripts/Core/BattleReport/BattleReportInfo.cs
  68. 11 0
      Assets/Scripts/Core/BattleReport/BattleReportInfo.cs.meta
  69. 13 0
      Assets/Scripts/Core/BattleReport/BattleReportMassgeDataModule.cs
  70. 3 0
      Assets/Scripts/Core/BattleReport/BattleReportMassgeDataModule.cs.meta
  71. 49 0
      Assets/Scripts/Core/BattleReport/BattleReportValueDataModule.cs
  72. 3 0
      Assets/Scripts/Core/BattleReport/BattleReportValueDataModule.cs.meta
  73. 11 0
      Assets/Scripts/Core/BattleReport/ReportFightMassgeLogData.cs
  74. 3 0
      Assets/Scripts/Core/BattleReport/ReportFightMassgeLogData.cs.meta
  75. 19 0
      Assets/Scripts/Core/BattleReport/ReportFightMassgeLogDataModule.cs
  76. 3 0
      Assets/Scripts/Core/BattleReport/ReportFightMassgeLogDataModule.cs.meta
  77. 12 0
      Assets/Scripts/Core/BattleReport/ReportFightValueData.cs
  78. 3 0
      Assets/Scripts/Core/BattleReport/ReportFightValueData.cs.meta
  79. 6 0
      Assets/Scripts/GameData/ExcelConfig/GameConstantConfig.cs
  80. 2 0
      Assets/Scripts/GameLogic/Combat/CombatState/CombatFightState.cs
  81. 5 1
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatController.cs
  82. 3 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport.meta
  83. 133 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportEntityInfo.cs
  84. 3 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportEntityInfo.cs.meta
  85. 57 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportManager.cs
  86. 3 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportManager.cs.meta
  87. 12 10
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs
  88. 二进制
      Excel2Json/Excel/GameConstant.xlsx
  89. 二进制
      Excel2Json/Excel/HeroModel.xlsx
  90. 二进制
      Excel2Json/Excel/skill.xlsx
  91. 二进制
      Excel2Json/Excel/修仙游戏数据规划表.xlsx
  92. 48 0
      UIElementsSchema/GlobalNamespace.xsd
  93. 27 0
      UIElementsSchema/UIElements.xsd
  94. 70 0
      UIElementsSchema/Unity.Editor.Bridge.xsd
  95. 54 0
      UIElementsSchema/Unity.Entities.Editor.UIElements.xsd
  96. 182 0
      UIElementsSchema/Unity.Entities.Editor.xsd
  97. 48 0
      UIElementsSchema/Unity.Entities.UI.xsd
  98. 367 0
      UIElementsSchema/Unity.MemoryProfiler.Editor.UI.xsd
  99. 104 0
      UIElementsSchema/Unity.Profiling.Editor.xsd
  100. 25 0
      UIElementsSchema/Unity.Services.Core.Editor.Environments.UI.xsd

+ 8 - 0
Assets/Editor/CombatEditor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: WikY5nz4Ai0KnJBnYgWYjKkguC73lNjy+3EKlngl6r3CiDl44FQBFZJm6YCw
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 122 - 0
Assets/Editor/CombatEditor/CombaReportEnditorManager.cs

@@ -0,0 +1,122 @@
+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]);
+        }
+    }
+}

+ 11 - 0
Assets/Editor/CombatEditor/CombaReportEnditorManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: WSkY436sAHnvEK2OZv2uG6lVM+sa0wmborO9nVugKv5Th0koChkxrH3wEUa/
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 17 - 0
Assets/Editor/CombatEditor/CombatEditor.asmdef

@@ -0,0 +1,17 @@
+{
+    "name": "CombatEditor",
+    "rootNamespace": "xy002Editor",
+    "references": [
+        "Fort23.GameLogic",
+        "Fort23.Core"
+    ],
+    "includePlatforms": [],
+    "excludePlatforms": [],
+    "allowUnsafeCode": false,
+    "overrideReferences": false,
+    "precompiledReferences": [],
+    "autoReferenced": true,
+    "defineConstraints": [],
+    "versionDefines": [],
+    "noEngineReferences": false
+}

+ 7 - 0
Assets/Editor/CombatEditor/CombatEditor.asmdef.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: XHtLtCmvUy2+EmvTmI6dn5H+NcXPLDiQ+IYEaIdWd1M95zYcr84WhUrLxwcG
+AssemblyDefinitionImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 52 - 0
Assets/Editor/CombatEditor/CombatPeportMassgeModle.cs

@@ -0,0 +1,52 @@
+using System.Text;
+using Core.BattleReport;
+using GameLogic.Combat.CombatTool.CombatReport;
+using UnityEngine.UIElements;
+
+namespace xy002Editor.CombatEditor
+{
+    public class CombatPeportMassgeModle
+    {
+        private string sxV = "";
+        private Label label;
+
+        private StringBuilder stringBuilder;
+        private CombatReportEntityInfo combatReportEntityInfo;
+
+        public void Init(VisualElement root, CombatReportEntityInfo combatReportEntityInfo,
+            CombaReportEnditorManager combaReportEnditorManager)
+        {
+            this.combatReportEntityInfo = combatReportEntityInfo;
+            TextField textField = new TextField();
+            textField.label = "筛选信息";
+            textField.RegisterValueChangedCallback((e) => { sxV = e.newValue; });
+            root.Add(textField);
+            ScrollView miaoshu = combaReportEnditorManager.Copy<ScrollView>("value_scrollview");
+            root.Add(miaoshu);
+            label = new Label();
+            miaoshu.Add(label);
+            stringBuilder = new StringBuilder();
+        }
+
+        public void OnGui()
+        {
+            stringBuilder.Clear();
+            for (int i = 0; i < combatReportEntityInfo.MsgModule.ReportFightMassgeLogDatas.Count; i++)
+            {
+                ReportFightMassgeLogData reportFightMassgeLogData =
+                    combatReportEntityInfo.MsgModule.ReportFightMassgeLogDatas[i];
+                if (!string.IsNullOrEmpty(sxV))
+                {
+                    if (!reportFightMassgeLogData.msg.Contains(sxV))
+                    {
+                        continue;
+                    }
+                }
+
+                stringBuilder.Append(reportFightMassgeLogData.time + "    " + reportFightMassgeLogData.msg + "\n");
+            }
+
+            label.text = stringBuilder.ToString();
+        }
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/CombatPeportMassgeModle.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3e709b0d6ab64c59b10a7ff42fc0c59f
+timeCreated: 1745995794

+ 156 - 0
Assets/Editor/CombatEditor/HeroEntityCombatReport.cs

@@ -0,0 +1,156 @@
+using System;
+using System.Collections.Generic;
+using Core.BattleReport;
+using GameLogic.Combat.CombatTool.CombatReport;
+using UnityEngine;
+using UnityEngine.UIElements;
+using static System.Drawing.FontStyle;
+
+namespace xy002Editor.CombatEditor
+{
+    public class HeroEntityCombatReport : IDisposable
+    {
+        // public CombaReportEnditorManager manager;
+
+        private CombatReportEntityInfo combatReportEntityInfo;
+        private Foldout foldout;
+        private CombaReportEnditorManager combaReportEnditorManager;
+        public Foldout root;
+
+        private ProgressBarShowModle cjShuXing;
+        private ProgressBarShowModle shangHangXingXi;
+        private ProgressBarShowModle zhiLiaoModle;
+        private ProgressBarShowModle shouDaoShangHangXingXi;
+        private CombatPeportMassgeModle combatPeportMassgeModle;
+
+        public Foldout miaoShuFoldout;
+        public void Init(CombatReportEntityInfo combatReportEntityInfo,
+            CombaReportEnditorManager combaReportEnditorManager)
+        {
+            this.combaReportEnditorManager = combaReportEnditorManager;
+            this.combatReportEntityInfo = combatReportEntityInfo;
+            InitUI();
+        }
+
+        private void InitUI()
+        {
+            this.foldout = new Foldout();
+            foldout.text =
+                $"ID:{combatReportEntityInfo.CombatHeroEntity.CurrCombatHeroInfo.modelID}";
+            // foldout.style.display = combatNewEditorWindow.heroData.style.display;
+            // foldout.style.marginLeft;
+            foldout.style.fontSize = 12;
+            // foldout.style.unityFontStyleAndWeight = Bold;
+            foldout.value = false;
+            if (combatReportEntityInfo.CombatHeroEntity.IsEnemy)
+            {
+                root = combaReportEnditorManager.enemyHeroRoot;
+            }
+            else
+            {
+                root = combaReportEnditorManager.myHeroRoot;
+            }
+
+            root.Add(foldout);
+            VisualElement visualElement_h = new VisualElement();
+            // VisualElement visualElement_h =combaReportEnditorManager.Copy<VisualElement>("hengxiang"); 
+            foldout.Add(visualElement_h);
+            VisualElement visualElement_v = combaReportEnditorManager.Copy<VisualElement>("value_data_entity_style"); //英雄信息
+            visualElement_h.Add(visualElement_v);
+            Label label = new Label();
+            label.text = "玩家名" + combatReportEntityInfo.CombatHeroEntity.CurrCombatHeroInfo.heroName;
+            visualElement_v.Add(label);
+             label = new Label();
+            label.text = "等级" + combatReportEntityInfo.CombatHeroEntity.CurrCombatHeroInfo.level;
+            visualElement_v.Add(label);
+            
+            ScrollView ScrollView = combaReportEnditorManager.Copy<ScrollView>("value_scrollview");
+
+            foldout.Add(ScrollView);
+
+
+            Foldout foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style2");
+            foldout1.text = "英雄属性";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            VisualElement progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style2");
+            foldout1.Add(progressVe);
+            cjShuXing = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "照成伤害信息";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            shangHangXingXi = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "治疗和被治疗信息";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            zhiLiaoModle = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+
+            foldout1 = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            foldout1.text = "受到伤害信息";
+            foldout1.style.unityFontStyleAndWeight = FontStyle.Bold;
+            foldout1.value = false;
+            visualElement_h.Add(foldout1);
+            progressVe = combaReportEnditorManager.Copy<VisualElement>("value_data_style");
+            foldout1.Add(progressVe);
+            shouDaoShangHangXingXi = new ProgressBarShowModle(progressVe, combaReportEnditorManager);
+
+
+            miaoShuFoldout = combaReportEnditorManager.Copy<Foldout>("foldout_style");
+            miaoShuFoldout.text = "战斗描述";
+            miaoShuFoldout.style.unityFontStyleAndWeight = FontStyle.Bold;
+            miaoShuFoldout.value = false;
+            visualElement_h.Add(miaoShuFoldout);
+            VisualElement miaoshuve = combaReportEnditorManager.Copy<VisualElement>("miaoshuve"); //英雄信息
+            miaoShuFoldout.Add(miaoshuve);
+            combatPeportMassgeModle=new CombatPeportMassgeModle();
+            combatPeportMassgeModle.Init(miaoshuve, combatReportEntityInfo, combaReportEnditorManager);
+        }
+
+        public void OnGUI()
+        {
+            if (!foldout.value)
+            {
+                return;
+            }
+
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.HeroInfoModule, cjShuXing);
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.zhiLiao, zhiLiaoModle);
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.CombatInfoModule, shangHangXingXi);
+            DrwaBattleReportValueDataModule(combatReportEntityInfo.InjuredInfoModule, shouDaoShangHangXingXi);
+            
+            if (miaoShuFoldout.value)
+            {
+                combatPeportMassgeModle.OnGui();
+            }
+        }
+
+        private void DrwaBattleReportValueDataModule(BattleReportValueDataModule battleReportValueDataModule,
+            ProgressBarShowModle progressBarShowModle)
+        {
+            foreach (var VARIABLE in battleReportValueDataModule.fightValueData_long.Values)
+            {
+                ReportFightValueData<long> reportFightValueData = VARIABLE;
+                progressBarShowModle.CrendHarmValue(reportFightValueData.name, reportFightValueData.value,
+                    reportFightValueData.maxValue);
+            }
+        }
+
+        public void Dispose()
+        {
+            combatReportEntityInfo = null;
+        }
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/HeroEntityCombatReport.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 53cb277152ab4bc2b25994bd6bad0451
+timeCreated: 1745979797

+ 11 - 0
Assets/Editor/CombatEditor/HeroValueReport.cs

@@ -0,0 +1,11 @@
+using UnityEngine.UIElements;
+
+namespace xy002Editor.CombatEditor
+{
+    public class HeroValueReport
+    {
+        public  ProgressBar progressBar ;
+        public Label Label;
+        public VisualElement root;
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/HeroValueReport.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 500eb2e8a7504f22a6dfa00dc3aaa688
+timeCreated: 1745983305

+ 47 - 0
Assets/Editor/CombatEditor/ProgressBarShowModle.cs

@@ -0,0 +1,47 @@
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace xy002Editor.CombatEditor
+{
+    public class ProgressBarShowModle
+    {
+        public VisualElement root;
+        private Dictionary<string, HeroValueReport> valueReprot = new Dictionary<string, HeroValueReport>();
+        public CombaReportEnditorManager manager;
+
+        public ProgressBarShowModle(VisualElement root, CombaReportEnditorManager manager)
+        {
+            this.root = root;
+            this.manager = manager;
+        }
+
+        public void CrendHarmValue(string vname, float currValue, float maxValue)
+        {
+            if (valueReprot.TryGetValue(vname, out HeroValueReport heroValueReport))
+            {
+                heroValueReport.progressBar.title = currValue.ToString();
+                heroValueReport.progressBar.lowValue = currValue;
+                heroValueReport.progressBar.highValue = maxValue;
+            }
+            else
+            {
+                heroValueReport = new HeroValueReport();
+                VisualElement herovaluegrid = manager.Copy<VisualElement>("value_data_entity_style");
+                root.Add(herovaluegrid);
+                Label testv = manager.Copy<Label>("valuename");
+                testv.text = vname;
+                testv.style.unityFontStyleAndWeight = FontStyle.Bold;
+                testv.style.color = Color.magenta;
+                herovaluegrid.Add(testv);
+                ProgressBar progressBar = manager.Copy<ProgressBar>("valuebar");
+                progressBar.title = currValue.ToString();
+                progressBar.lowValue = currValue;
+                progressBar.highValue = maxValue;
+                herovaluegrid.Add(progressBar);
+                heroValueReport.progressBar = progressBar;
+                valueReprot.Add(vname, heroValueReport);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Editor/CombatEditor/ProgressBarShowModle.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 8bd2acf3fbce485c9f57a925aae294ee
+timeCreated: 1745983400

+ 8 - 0
Assets/Editor/UIAsset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: BnsbsHmuUCp79l82UAf+wyhHLkUXNKrvDSJxoE5ho3UesJsDWUrH54gh92R4
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
Assets/Editor/UIAsset/AssetBundleEditor.uxml

@@ -0,0 +1,36 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
+    <Style src="project://database/Assets/Editor/UIAsset/assetBundle.uss?fileID=7433441132597879392&amp;guid=f6d4784d0b841f74da713636171a9102&amp;type=3#assetBundle" />
+    <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" />
+    <ui:VisualElement style="flex-grow: 1; flex-wrap: wrap; flex-direction: row; height: -11px; max-height: 29px; width: 916px;">
+        <ui:Button text="构建" parse-escape-sequences="true" display-tooltip-when-elided="true" name="goujian" />
+        <ui:Toggle label="显示跟随APK" name="showapkbundle" style="max-height: 26px; align-items: center;" />
+        <ui:TextField picking-mode="Ignore" label="筛选" value="filler text" name="shaixuan" style="align-items: stretch; justify-content: flex-start; align-self: auto;" />
+    </ui:VisualElement>
+    <ui:VisualElement style="flex-grow: 1; flex-direction: row;">
+        <ui:VisualElement name="CaiDan" style="flex-grow: 1; width: 0; max-width: 91%;">
+            <ui:Button text="+" parse-escape-sequences="true" display-tooltip-when-elided="true" name="AddPack" />
+            <ui:VisualElement style="flex-grow: 1;">
+                <ui:ScrollView name="CaiDanHuaDong" class="CaiDanHuaDong" />
+            </ui:VisualElement>
+        </ui:VisualElement>
+        <ui:VisualElement name="XiangQing" style="flex-grow: 1; min-width: -224px; max-width: 36%; width: auto;">
+            <ui:Label tabindex="-1" text="详情信息" parse-escape-sequences="true" display-tooltip-when-elided="true" name="Label" />
+            <ui:ScrollView name="xiangqinginfo">
+                <ui:VisualElement name="VisualElement" class="heng">
+                    <ui:Label tabindex="-1" text="路径" parse-escape-sequences="true" display-tooltip-when-elided="true" />
+                    <ui:Label tabindex="-1" text="路径" parse-escape-sequences="true" display-tooltip-when-elided="true" name="path_i" />
+                </ui:VisualElement>
+                <ui:VisualElement name="VisualElement" class="heng">
+                    <ui:Label tabindex="-1" text="资源名" parse-escape-sequences="true" display-tooltip-when-elided="true" />
+                    <ui:Label tabindex="-1" text="路径" parse-escape-sequences="true" display-tooltip-when-elided="true" name="name_i" />
+                </ui:VisualElement>
+                <ui:VisualElement name="VisualElement" class="shu" style="flex-direction: row; flex-wrap: wrap;">
+                    <ui:Toggle label="自定义bundle" name="isCustomizeBudnleName" style="width: 185px;" />
+                    <ui:TextField picking-mode="Ignore" label="bundleName" value="bundleName" name="bundleName" style="height: 29px;" />
+                </ui:VisualElement>
+                <ui:Toggle label="是否不跟随" name="isNotFollowApk" />
+                <ui:Toggle label="是否激活" name="isActive" />
+            </ui:ScrollView>
+        </ui:VisualElement>
+    </ui:VisualElement>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/AssetBundleEditor.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f3711089c3ccc2340ac251d856ebadf1
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 10 - 0
Assets/Editor/UIAsset/AssetBundleUXML.uxml

@@ -0,0 +1,10 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
+    <ui:Label tabindex="-1" text="资源打包列表" parse-escape-sequences="true" display-tooltip-when-elided="true" />
+    <uie:ObjectField label="Object Field" />
+    <ui:ScrollView>
+        <ui:VisualElement style="flex-grow: 1; flex-direction: row;">
+            <ui:Toggle style="width: 26px;" />
+            <ui:Foldout text="Foldout" />
+        </ui:VisualElement>
+    </ui:ScrollView>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/AssetBundleUXML.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 949e84f01cb8d4d4995fd27341836e5b
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 16 - 0
Assets/Editor/UIAsset/BuildEditor.uxml

@@ -0,0 +1,16 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="True">
+    <Style src="project://database/Assets/UIAsset/aaaw.uss?fileID=7433441132597879392&amp;guid=773904bbce0896645bf17d9e2d0101f1&amp;type=3#aaaw" />
+    <ui:Label text="测试的文本" display-tooltip-when-elided="true" style="height: 41px; width: 650px; -unity-text-align: upper-center; font-size: 24px;" />
+    <ui:Foldout text="创建新的库" style="color: rgb(229, 219, 219);">
+        <ui:VisualElement name="cre1" style="flex-direction: row; flex-shrink: 2; flex-wrap: wrap;">
+            <ui:TextField picking-mode="Ignore" label="库名" name="ku_name" style="height: 16px; width: 204px; margin-left: 0;" />
+            <ui:TextField picking-mode="Ignore" label="版本号" name="banben" style="height: 16px; width: 204px; margin-left: 0;" />
+        </ui:VisualElement>
+        <ui:Button text="创建" display-tooltip-when-elided="true" name="cre_btn" style="height: 19px; width: 156px; margin-left: 200px;" />
+    </ui:Foldout>
+    <ui:Foldout text="需要打包的库">
+        <ui:ScrollView style="height: 206px;">
+            <ui:VisualElement name="ve1" style="flex-direction: column; flex-wrap: wrap; flex-shrink: 0; margin-left: 30px; padding-left: 0; flex-grow: 0; flex-basis: auto;" />
+        </ui:ScrollView>
+    </ui:Foldout>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/BuildEditor.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: fd05093dbc5a65747b170b77d2819fa9
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 48 - 0
Assets/Editor/UIAsset/CombatHeroConfig.uxml

@@ -0,0 +1,48 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" MemoryProfiler="Unity.MemoryProfiler.Editor" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
+    <Style src="project://database/Assets/Editor/UIAsset/root1.uss?fileID=7433441132597879392&amp;guid=0cec9ccaf0232a545bb18d5cbf521518&amp;type=3#root1" />
+    <ui:VisualElement name="tilte" style="flex-direction: row; flex-wrap: wrap;">
+        <ui:Button text="Button" display-tooltip-when-elided="true" name="save" />
+        <ui:Button text="Button" display-tooltip-when-elided="true" name="open" />
+    </ui:VisualElement>
+    <ui:ScrollView name="rootsv">
+        <ui:VisualElement />
+        <ui:Foldout text="英雄ID:101  guid:1023" name="herodata" style="opacity: 1; visibility: visible; overflow: visible; flex-wrap: nowrap; flex-direction: column;">
+            <ui:VisualElement name="root1" class="root1">
+                <ui:VisualElement name="herozhiliao" class="herozhiliao">
+                    <ui:VisualElement name="icon" class="icon" style="background-image: none;" />
+                    <ui:Label text="zidonglabelzidonglabelzidonglabel" display-tooltip-when-elided="true" name="zidonglabel" class="zidonglabel" />
+                </ui:VisualElement>
+                <ui:VisualElement name="root2" class="root2">
+                    <ui:VisualElement name="herovalue" class="herovalue" style="background-color: rgb(119, 140, 130);">
+                        <ui:VisualElement name="herovaluegrid" class="herovaluegrid">
+                            <ui:Label text="生命值:" display-tooltip-when-elided="true" name="valuename" class="valuename" style="color: rgb(255, 255, 255); -unity-font-style: bold;" />
+                            <ui:ProgressBar name="valuebar" low-value="61.28" focusable="false" title="100/200101" high-value="100" class="valuebar" style="flex-wrap: nowrap; flex-direction: row; width: 200px; max-width: none; min-width: auto;" />
+                        </ui:VisualElement>
+                    </ui:VisualElement>
+                    <ui:VisualElement name="root3" class="root3" style="margin-left: 10px;">
+                        <ui:Foldout text="伤害信息">
+                            <ui:VisualElement style="flex-direction: row;">
+                                <ui:Label text="Label" display-tooltip-when-elided="true" />
+                                <ui:ProgressBar title="1000" low-value="61.9" name="hrambar" high-value="110.6" style="width: 195px; color: rgb(255, 255, 255); background-color: rgb(255, 255, 255); border-left-color: rgb(0, 0, 0); -unity-background-image-tint-color: rgb(255, 255, 255); height: 22px;" />
+                            </ui:VisualElement>
+                        </ui:Foldout>
+                        <ui:Foldout text="当前buff" name="currbuff" style="margin-left: 0;">
+                            <ui:VisualElement name="buffroot" style="flex-direction: row;">
+                                <ui:VisualElement name="bufficon" style="width: 24px; height: 24px; background-image: url(&apos;project://database/Assets/Art/UIAssets/icon/icon_buff12.png?fileID=2800000&amp;guid=75756f763407ede4fbac023d422db7cb&amp;type=3#icon_buff12&apos;);" />
+                                <ui:Label text="暴击buff:持续时间10S" display-tooltip-when-elided="true" name="buffmessage" />
+                            </ui:VisualElement>
+                        </ui:Foldout>
+                        <ui:TextField picking-mode="Ignore" label="输入行为过滤" value="filler text" text="filler text" />
+                        <ui:Foldout text="英雄行为" name="messagedata" class="messagedata" style="background-color: rgb(89, 89, 89); margin-left: 0;">
+                            <ui:ScrollView name="messagescr" class="messagescr">
+                                <ui:Label text="10.23 使用技能1023" display-tooltip-when-elided="true" name="messagevalue" />
+                            </ui:ScrollView>
+                        </ui:Foldout>
+                    </ui:VisualElement>
+                </ui:VisualElement>
+            </ui:VisualElement>
+        </ui:Foldout>
+    </ui:ScrollView>
+    <uie:IntegerField label="Int Field" value="42" />
+    <ui:Button text="Button" display-tooltip-when-elided="true" class="buttonsize" />
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/CombatHeroConfig.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: c6df55d4ed93c654983ddbe15bd05e9c
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 30 - 0
Assets/Editor/UIAsset/CombatR.cs

@@ -0,0 +1,30 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+public class CombatR : EditorWindow
+{
+    // [SerializeField]
+    // private VisualTreeAsset m_VisualTreeAsset = default;
+    //
+    // [MenuItem("Window/UI Toolkit/CombatR")]
+    // public static void ShowExample()
+    // {
+    //     CombatR wnd = GetWindow<CombatR>();
+    //     wnd.titleContent = new GUIContent("CombatR");
+    // }
+    //
+    // public void CreateGUI()
+    // {
+    //     // Each editor window contains a root VisualElement object
+    //     VisualElement root = rootVisualElement;
+    //
+    //     // VisualElements objects can contain other VisualElement following a tree hierarchy.
+    //     VisualElement label = new Label("Hello World! From C#");
+    //     root.Add(label);
+    //
+    //     // Instantiate UXML
+    //     VisualElement labelFromUXML = m_VisualTreeAsset.Instantiate();
+    //     root.Add(labelFromUXML);
+    // }
+}

+ 12 - 0
Assets/Editor/UIAsset/CombatR.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: Dysc5CqqVC5FTF08/g35mtVJcM3dc7cdDYGxfUWc2DLHAQrGbfPklXN/lHXp
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences:
+  - m_VisualTreeAsset: {fileID: 9197481963319205126, guid: 2a82c8ee6f9fbf94ea67777b3002caf7, type: 3}
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 64 - 0
Assets/Editor/UIAsset/CombatR.uss

@@ -0,0 +1,64 @@
+.custom-label {
+    font-size: 20px;
+    -unity-font-style: bold;
+    color: rgb(68, 138, 255);
+}
+
+.foldout_style {
+}
+
+.value_data_style {
+    flex-grow: 1;
+    flex-direction: row;
+    flex-wrap: wrap;
+}
+
+.value_data_entity_style {
+    flex-grow: 1;
+    flex-wrap: wrap;
+    flex-direction: row;
+}
+
+.value_scrollview {
+    margin-left: 0;
+    min-width: 70%;
+}
+
+.value_list_style {
+}
+
+.visualElement_v {
+    flex-grow: 1;
+    width: auto;
+    max-width: none;
+    align-items: stretch;
+    align-self: auto;
+    min-width: 30%;
+    flex-basis: auto;
+    flex-shrink: 1;
+    flex-wrap: nowrap;
+    opacity: 1;
+    margin-left: 0;
+}
+
+.valuebar {
+    max-width: 100px;
+    flex-direction: column;
+    flex-wrap: wrap;
+    min-width: 100px;
+}
+
+.valuename {
+}
+
+.hengxiang {
+    width: auto;
+    justify-content: flex-start;
+    align-self: auto;
+    flex-direction: row;
+}
+
+.miaoshuve {
+    flex-grow: 1;
+    max-height: 300px;
+}

+ 11 - 0
Assets/Editor/UIAsset/CombatR.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: B3kb4yqqVS5Xehpxcwzi32JYv+Bqf5Rdio1ShwovW1cO9BHWP1X4I6VTnNaB
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 24 - 0
Assets/Editor/UIAsset/CombatR.uxml

@@ -0,0 +1,24 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
+    <Style src="project://database/Assets/Editor/UIAsset/CombatR.uss?fileID=7433441132597879392&amp;guid=834f076e9de78254a915d3bcc179e7c8&amp;type=3#CombatR" />
+    <ui:Foldout text="Foldout" name="Foldout" view-data-key="foldout_" class="foldout_style">
+        <ui:VisualElement class="hengxiang">
+            <ui:VisualElement name="VisualElement" class="visualElement_v">
+                <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="Label" view-data-key="heroname" style="width: 30%;" />
+                <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" name="Label" view-data-key="herolevel" style="width: 30%;" />
+            </ui:VisualElement>
+            <ui:ScrollView class="value_scrollview">
+                <ui:Foldout text="Foldout">
+                    <ui:VisualElement name="VisualElement" class="value_data_style">
+                        <ui:VisualElement class="value_data_entity_style">
+                            <ui:Label tabindex="-1" text="Label" parse-escape-sequences="true" display-tooltip-when-elided="true" class="valuename" />
+                            <ui:ProgressBar value="73.8" title="my-progress" name="ProgressBar" class="valuebar valuename2" />
+                        </ui:VisualElement>
+                    </ui:VisualElement>
+                </ui:Foldout>
+                <ui:VisualElement class="miaoshuve">
+                    <ui:TextField picking-mode="Ignore" label="Text Field" value="filler text" />
+                </ui:VisualElement>
+            </ui:ScrollView>
+        </ui:VisualElement>
+    </ui:Foldout>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/CombatR.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: DSsXt3mlBi58mlsVDZ1mab1aG2Tfz55nm/8iGNLAZiaMSs2l3qo9YthDkhFa
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 44 - 0
Assets/Editor/UIAsset/CombatReproUI.uxml

@@ -0,0 +1,44 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" MemoryProfiler="Unity.MemoryProfiler.Editor" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
+    <Style src="project://database/Assets/Editor/UIAsset/combatreporuss.uss?fileID=7433441132597879392&amp;guid=4bb04ad7c6bb4e74e9ac4b0b6127d638&amp;type=3#combatreporuss" />
+    <ui:VisualElement style="align-items: stretch; justify-content: flex-end;">
+        <ui:VisualElement style="flex-direction: row; height: auto; align-items: center; min-height: 30px;">
+            <ui:Button text="&lt;" display-tooltip-when-elided="true" name="zuo" />
+            <ui:Button text="play" display-tooltip-when-elided="true" name="play" />
+            <ui:Button text="&gt;" display-tooltip-when-elided="true" name="you" />
+            <ui:SliderInt picking-mode="Ignore" label="帧控制" value="42" high-value="10000" name="frame" style="max-width: none; width: 748px; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; align-items: stretch;" />
+        </ui:VisualElement>
+        <ui:Button text="+" display-tooltip-when-elided="true" name="addfile" style="width: 153px; height: auto;" />
+        <ui:VisualElement name="data" class="data">
+            <ui:ScrollView name="datasv" class="datasv" style="justify-content: center;">
+                <ui:Foldout text="我方英雄" name="foldout" class="foldout">
+                    <ui:Foldout text="英雄ID">
+                        <ui:ScrollView name="heroscrollview" style="width: 700px;">
+                            <ui:VisualElement name="root1" class="root1" style="height: auto; width: 700px;">
+                                <ui:VisualElement name="herozhiliao" class="herozhiliao">
+                                    <ui:VisualElement name="icon" class="heroicon" />
+                                    <ui:Label text="zidonglab" display-tooltip-when-elided="true" name="zidonglabel" class="zidonglabel" />
+                                </ui:VisualElement>
+                                <ui:VisualElement name="root2" class="root2" style="width: 700px;">
+                                    <ui:VisualElement name="herovalueroot" class="herovalueroot">
+                                        <ui:VisualElement name="herovaluegrid" class="herovaluegrid" style="width: 300px;">
+                                            <ui:Label text="生命值:" display-tooltip-when-elided="true" name="valuename" class="valuename" style="color: rgb(255, 255, 255); -unity-font-style: bold;" />
+                                            <ui:ProgressBar name="valuebar" low-value="61.28" focusable="false" title="100/200101" high-value="100" class="valuebar" style="flex-wrap: nowrap; flex-direction: row; width: 200px; max-width: none; min-width: auto;" />
+                                        </ui:VisualElement>
+                                    </ui:VisualElement>
+                                    <ui:VisualElement name="root3" class="root3">
+                                        <ui:TextField picking-mode="Ignore" label="输入行为过滤" value="filler text" text="filler text" />
+                                        <ui:Foldout text="英雄行为" name="messagedata" class="messagedata" style="background-color: rgb(89, 89, 89); margin-left: 0;">
+                                            <ui:ScrollView name="messagescr" class="messagescr" style="width: 352px;">
+                                                <ui:Label text="10.23 使用技能102310.23 使用技能102310.23 使用技能102310.23 使用技能102310.23 使用技能102310.23 使用技能102310.23 使用技能1023" display-tooltip-when-elided="true" name="messagevalue" enable-rich-text="true" class="messagevalue" />
+                                            </ui:ScrollView>
+                                        </ui:Foldout>
+                                    </ui:VisualElement>
+                                </ui:VisualElement>
+                            </ui:VisualElement>
+                        </ui:ScrollView>
+                    </ui:Foldout>
+                </ui:Foldout>
+            </ui:ScrollView>
+        </ui:VisualElement>
+    </ui:VisualElement>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/CombatReproUI.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 8a9f3b4506141c24d8d82840b599bf01
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 17 - 0
Assets/Editor/UIAsset/CombatSever.uxml

@@ -0,0 +1,17 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements"
+         xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements"
+         MemoryProfiler="Unity.MemoryProfiler.Editor"
+         noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
+    <Style src="project://database/Assets/Editor/UIAsset/simulationcombat.uss?fileID=7433441132597879392&amp;guid=bf52d4e27ec60304983448140ac1384d&amp;type=3#simulationcombat"/>
+    <ui:VisualElement class="ve_h">
+        <ui:Button text="启动服务器" display-tooltip-when-elided="true"/>
+        <ui:Button text="启动服务器" display-tooltip-when-elided="true"/>
+        <uie:EnumField label="战斗类型" value="Center" style="width: 292px;"/>
+    </ui:VisualElement>
+    <ui:Foldout text="我方英雄" value="true">
+        <ui:Foldout text="Foldout" class="foldout_x">
+            <uie:IntegerField label="英雄ID" value="42"/>
+            <ui:Foldout text="Foldout"/>
+        </ui:Foldout>
+    </ui:Foldout>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/CombatSever.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 248f6ce47929f054a9b3373145d478cc
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 38 - 0
Assets/Editor/UIAsset/New Panel Settings.asset

@@ -0,0 +1,38 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 19101, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: New Panel Settings
+  m_EditorClassIdentifier: 
+  themeUss: {fileID: -4733365628477956816, guid: 36ec8fde862172e41915bb5a7c184e68, type: 3}
+  m_TargetTexture: {fileID: 0}
+  m_ScaleMode: 1
+  m_ReferenceSpritePixelsPerUnit: 100
+  m_Scale: 1
+  m_ReferenceDpi: 96
+  m_FallbackDpi: 96
+  m_ReferenceResolution: {x: 1200, y: 800}
+  m_ScreenMatchMode: 0
+  m_Match: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+  m_ClearDepthStencil: 1
+  m_ClearColor: 0
+  m_ColorClearValue: {r: 0, g: 0, b: 0, a: 0}
+  m_DynamicAtlasSettings:
+    m_MinAtlasSize: 64
+    m_MaxAtlasSize: 4096
+    m_MaxSubTextureSize: 64
+    m_ActiveFilters: -1
+  m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0}
+  m_RuntimeShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0}
+  m_RuntimeWorldShader: {fileID: 9102, guid: 0000000000000000f000000000000000, type: 0}
+  textSettings: {fileID: 0}

+ 8 - 0
Assets/Editor/UIAsset/New Panel Settings.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: XnJOtHylBy/cC804xFXiddrJBl0P0KKt0eo/U6Lr4me6Pb0VA6cYn3QXsu0q
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 46 - 0
Assets/Editor/UIAsset/NewCombatUI.uxml

@@ -0,0 +1,46 @@
+<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" MemoryProfiler="Unity.MemoryProfiler.Editor" noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
+    <Style src="project://database/Assets/Editor/UIAsset/root1.uss?fileID=7433441132597879392&amp;guid=0cec9ccaf0232a545bb18d5cbf521518&amp;type=3#root1" />
+    <ui:VisualElement name="tilte" style="flex-direction: row; flex-wrap: wrap;">
+        <ui:Button text="Button" display-tooltip-when-elided="true" name="save" />
+        <ui:Button text="Button" display-tooltip-when-elided="true" name="open" />
+    </ui:VisualElement>
+    <ui:ScrollView name="rootsv">
+        <ui:VisualElement />
+        <ui:Foldout text="英雄ID:101  guid:1023" name="herodata" style="opacity: 1; visibility: visible; overflow: visible; flex-wrap: nowrap; flex-direction: column;">
+            <ui:VisualElement name="root1" class="root1">
+                <ui:VisualElement name="herozhiliao" class="herozhiliao">
+                    <ui:VisualElement name="icon" class="icon" style="background-image: none;" />
+                    <ui:Label text="zidonglabelzidonglabelzidonglabel" display-tooltip-when-elided="true" name="zidonglabel" class="zidonglabel" />
+                </ui:VisualElement>
+                <ui:VisualElement name="root2" class="root2">
+                    <ui:VisualElement name="herovalue" class="herovalue" style="background-color: rgb(119, 140, 130);">
+                        <ui:VisualElement name="herovaluegrid" class="herovaluegrid">
+                            <ui:Label text="生命值:" display-tooltip-when-elided="true" name="valuename" class="valuename" style="color: rgb(255, 255, 255); -unity-font-style: bold;" />
+                            <ui:ProgressBar name="valuebar" low-value="61.28" focusable="false" title="100/200101" high-value="100" class="valuebar" style="flex-wrap: nowrap; flex-direction: row; width: 200px; max-width: none; min-width: auto;" />
+                        </ui:VisualElement>
+                    </ui:VisualElement>
+                    <ui:VisualElement name="root3" class="root3" style="margin-left: 10px;">
+                        <ui:Foldout text="伤害信息">
+                            <ui:VisualElement style="flex-direction: row;">
+                                <ui:Label text="Label" display-tooltip-when-elided="true" />
+                                <ui:ProgressBar title="1000" low-value="61.9" name="hrambar" high-value="110.6" style="width: 195px; color: rgb(255, 255, 255); background-color: rgb(255, 255, 255); border-left-color: rgb(0, 0, 0); -unity-background-image-tint-color: rgb(255, 255, 255); height: 22px;" />
+                            </ui:VisualElement>
+                        </ui:Foldout>
+                        <ui:Foldout text="当前buff" name="currbuff" style="margin-left: 0;">
+                            <ui:VisualElement name="buffroot" style="flex-direction: row;">
+                                <ui:VisualElement name="bufficon" style="width: 24px; height: 24px; background-image: url(&apos;project://database/Assets/Art/UIAssets/icon/icon_buff12.png?fileID=2800000&amp;guid=75756f763407ede4fbac023d422db7cb&amp;type=3#icon_buff12&apos;);" />
+                                <ui:Label text="暴击buff:持续时间10S" display-tooltip-when-elided="true" name="buffmessage" />
+                            </ui:VisualElement>
+                        </ui:Foldout>
+                        <ui:TextField picking-mode="Ignore" label="输入行为过滤" value="filler text" text="filler text" />
+                        <ui:Foldout text="英雄行为" name="messagedata" class="messagedata" style="background-color: rgb(89, 89, 89); margin-left: 0;">
+                            <ui:ScrollView name="messagescr" class="messagescr">
+                                <ui:Label text="10.23 使用技能1023" display-tooltip-when-elided="true" name="messagevalue" />
+                            </ui:ScrollView>
+                        </ui:Foldout>
+                    </ui:VisualElement>
+                </ui:VisualElement>
+            </ui:VisualElement>
+        </ui:Foldout>
+    </ui:ScrollView>
+</ui:UXML>

+ 10 - 0
Assets/Editor/UIAsset/NewCombatUI.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 1e0d423fc1a660642a09638fe0d4ba92
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 1 - 0
Assets/Editor/UIAsset/NewTSSFile 1.tss

@@ -0,0 +1 @@
+VisualElement {}

+ 11 - 0
Assets/Editor/UIAsset/NewTSSFile 1.tss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: DHxK5iL7By5QZS8Cpn5+Xl4dk7XOGisVC6MhAGOIiI3bTGPBSo5uEXgxEwS/
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 1 - 0
Assets/Editor/UIAsset/NewTSSFile.tss

@@ -0,0 +1 @@
+VisualElement {}

+ 11 - 0
Assets/Editor/UIAsset/NewTSSFile.tss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: Dn1KsiKqUC0giT9KBhfenXYDkEdgPLVFsFNlLpAkgROsRyO1fTBhpLwU+Lr/
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 1 - 0
Assets/Editor/UIAsset/NewUSSFile.uss

@@ -0,0 +1 @@
+VisualElement {}

+ 11 - 0
Assets/Editor/UIAsset/NewUSSFile.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CX9N4Xv8Wnu5BTpoDe9IlyZGMIuXOuUbv1dkEYxTaWpqObPCtPXCbyINlo9p
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 9 - 0
Assets/Editor/UIAsset/NewUXMLTemplate.uxml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<engine:UXML
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:engine="UnityEngine.UIElements"
+    xmlns:editor="UnityEditor.UIElements"
+    xsi:noNamespaceSchemaLocation="../../../UIElementsSchema/UIElements.xsd"
+>
+    
+</engine:UXML>

+ 10 - 0
Assets/Editor/UIAsset/NewUXMLTemplate.uxml.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: DngctXj5By5D1ydLu6t9StVZUINb98hfJxMRTgqkrvl9+BGkAO2ya2D5LBIc
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}

+ 2 - 0
Assets/Editor/UIAsset/UnityDefaultRuntimeTheme.tss

@@ -0,0 +1,2 @@
+@import url("unity-theme://default");
+VisualElement {}

+ 11 - 0
Assets/Editor/UIAsset/UnityDefaultRuntimeTheme.tss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: B3wa536qUC0ZYYRQD6rlqaG6hRgcy/yPSdWFhht2V+xMQroDX9sad6WR1Z+c
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12388, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 0 - 0
Assets/Editor/UIAsset/aaa.uss


+ 11 - 0
Assets/Editor/UIAsset/aaa.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: aa57d88f9ef79c041b4a532be5084834
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 19 - 0
Assets/Editor/UIAsset/aaaw.uss

@@ -0,0 +1,19 @@
+q2 {
+    flex-direction: row;
+    flex-shrink: 0;
+}
+
+.unity-text-field {
+    color: rgba(0, 0, 0, 255);
+    font-size: 12px;
+    margin-right: 0;
+    padding-right: 0;
+    max-width: none;
+    max-height: none;
+}
+
+.unity-base-text-field {
+}
+
+.unity-base-field {
+}

+ 11 - 0
Assets/Editor/UIAsset/aaaw.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 773904bbce0896645bf17d9e2d0101f1
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 20 - 0
Assets/Editor/UIAsset/assetBundle.uss

@@ -0,0 +1,20 @@
+.CaiDanHuaDong {
+}
+
+.myFoldout {
+    width: 36px;
+}
+
+.heng {
+    flex-grow: 1;
+    flex-wrap: wrap;
+    flex-direction: row;
+}
+
+.shu {
+    flex-direction: column;
+    flex-wrap: nowrap;
+}
+
+.shu {
+}

+ 11 - 0
Assets/Editor/UIAsset/assetBundle.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f6d4784d0b841f74da713636171a9102
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 64 - 0
Assets/Editor/UIAsset/combatreporuss.uss

@@ -0,0 +1,64 @@
+.foldoutstyle {
+}
+
+.data {
+    flex-direction: row;
+}
+
+.root1 {
+    width: 700px;
+    flex-direction: row;
+    height: auto;
+}
+
+.herovalueroot {
+    background-color: rgb(119, 140, 130);
+    flex-direction: row;
+    flex-wrap: wrap;
+}
+
+.herovaluegrid {
+    flex-direction: row;
+    width: 300px;
+}
+
+.heroicon {
+    background-image: none;
+    width: 64px;
+    height: 64px;
+}
+
+.root2 {
+    width: 700px;
+}
+
+.herozhiliao {
+    flex-wrap: wrap;
+    flex-direction: column;
+}
+
+.root3 {
+    margin-left: 10px;
+}
+
+.messagescr {
+}
+
+.datasv {
+    justify-content: space-between;
+    align-items: center;
+}
+
+.foldout {
+    margin-left: 10px;
+}
+
+.messagevalue {
+    flex-wrap: wrap;
+    flex-direction: column-reverse;
+    height: auto;
+    width: auto;
+    align-items: auto;
+    justify-content: flex-start;
+    white-space: normal;
+}

+ 11 - 0
Assets/Editor/UIAsset/combatreporuss.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4bb04ad7c6bb4e74e9ac4b0b6127d638
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 3 - 0
Assets/Editor/UIAsset/hid.uss

@@ -0,0 +1,3 @@
+.hid {
+    left: 20px;
+}

+ 11 - 0
Assets/Editor/UIAsset/hid.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9ca646e2d0377d647aa61331e5725791
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 0 - 0
Assets/Editor/UIAsset/hvalue.uss


+ 11 - 0
Assets/Editor/UIAsset/hvalue.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b3abaa16121befe4e834fed2801d2f3d
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 99 - 0
Assets/Editor/UIAsset/root1.uss

@@ -0,0 +1,99 @@
+.root1 {
+    flex-direction: row;
+}
+
+.icon {
+    background-image: url('project://database/Assets/Art/UIAssets/icon/icon_juese202b.png?fileID=2800000&guid=f4301807cbf007d4aa1f68ad9b550ba7&type=3#icon_juese202b');
+    width: 64px;
+    height: 64px;
+}
+
+.root2 {
+    align-items: stretch;
+    flex-shrink: 1;
+    margin-left: 10px;
+}
+
+.herovalue {
+    height: auto;
+    width: auto;
+    flex-direction: row;
+    flex-wrap: wrap;
+    visibility: visible;
+    flex-shrink: 10;
+    flex-grow: 10;
+    align-items: stretch;
+    justify-content: flex-start;
+}
+
+.root3 {
+}
+
+.valuebar {
+    opacity: 1;
+    width: 101px;
+    -unity-text-outline-width: 0;
+    -unity-text-outline-color: rgb(231, 56, 56);
+    max-width: 100px;
+    min-width: 100px;
+    left: 10px;
+    flex-direction: column;
+    flex-wrap: nowrap;
+    height: auto;
+    -unity-text-align: middle-left;
+    white-space: nowrap;
+    font-size: 10px;
+    color: rgb(255, 251, 251);
+    -unity-font-style: bold;
+}
+
+.herovaluegrid {
+    flex-direction: row;
+    width: 300px;
+    flex-wrap: nowrap;
+}
+
+.valuename {
+    flex-direction: row;
+    flex-wrap: wrap;
+    width: 80px;
+}
+
+.messagedata {
+    margin-left: 10px;
+}
+
+.messagescr {
+    max-height: 300px;
+    height: auto;
+}
+
+.herozhiliao {
+    width: 100px;
+    flex-grow: 0;
+    letter-spacing: 2px;
+    word-spacing: 0;
+    -unity-paragraph-spacing: 0;
+    text-shadow: 0 0 0 rgb(0, 0, 0);
+    padding-bottom: 0;
+    flex-shrink: 1;
+    padding-top: 0;
+    margin-top: 0;
+}
+
+.zidonglabel {
+    flex-wrap: wrap;
+    width: 100px;
+    -unity-text-align: lower-left;
+    white-space: normal;
+    color: rgb(255, 138, 0);
+    -unity-font-style: bold;
+}
+
+.integerstyle {
+    width: 245px;
+}
+
+.buttonsize {
+    width: 106px;
+}

+ 11 - 0
Assets/Editor/UIAsset/root1.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0cec9ccaf0232a545bb18d5cbf521518
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 10 - 0
Assets/Editor/UIAsset/simulationcombat.uss

@@ -0,0 +1,10 @@
+.ve_h {
+    flex-direction: row;
+    justify-content: flex-start;
+    flex-wrap: wrap;
+    align-items: flex-end;
+}
+
+.foldout_x {
+    margin-left: 10px;
+}

+ 11 - 0
Assets/Editor/UIAsset/simulationcombat.uss.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bf52d4e27ec60304983448140ac1384d
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+  disableValidation: 0

+ 2 - 1
Assets/Res/Config/GameConstantConfig.json

@@ -28,7 +28,8 @@
         150,
         160
       ],
-      "DetectEventCount": 100
+      "DetectEventCount": 100,
+      "DadaoPerCircle": 6.0
     }
   ]
 }

+ 4 - 4
Assets/Res/Config/HeroModelConfig.json

@@ -3,7 +3,7 @@
     {
       "ID": 101,
       "nickName": -1,
-      "name": 5,
+      "name": 1,
       "headicon": "icon_tx101",
       "model": "Nanzhu",
       "isUseGpu": false,
@@ -30,7 +30,7 @@
     {
       "ID": 9101,
       "nickName": -1,
-      "name": 5,
+      "name": 2,
       "headicon": "icon_tx9101",
       "model": "Guixiu01",
       "isUseGpu": false,
@@ -59,7 +59,7 @@
     {
       "ID": 9102,
       "nickName": -1,
-      "name": 5,
+      "name": 3,
       "headicon": "icon_tx9102",
       "model": "Nanzhu",
       "isUseGpu": false,
@@ -86,7 +86,7 @@
     {
       "ID": 9103,
       "nickName": -1,
-      "name": 5,
+      "name": 4,
       "headicon": "icon_tx9103",
       "model": "Guixiu01",
       "isUseGpu": false,

+ 1 - 1
Assets/Scenes/testCombat.scene

@@ -11917,9 +11917,9 @@ SceneRoots:
   - {fileID: 613972499}
   - {fileID: 321407578}
   - {fileID: 1856735312}
-  - {fileID: 7971796013686853673}
   - {fileID: 1584646302}
   - {fileID: 2622624}
   - {fileID: 144571669}
   - {fileID: 1089162872}
   - {fileID: 1557285921}
+  - {fileID: 7971796013686853673}

+ 8 - 0
Assets/Scripts/Core/BattleReport.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: Dnsetn6rBy87SzzdwEsL6kEXTC3SnDOYEqYovhf9CvT/zYp6CKijEDp1/uVP
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Core/BattleReport/BattleReportInfo.cs

@@ -0,0 +1,8 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+[System.Serializable]
+public class BattleReportInfo
+{
+}

+ 11 - 0
Assets/Scripts/Core/BattleReport/BattleReportInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: Dn8ctCz8BXjh+Coo1eTQAj+GhQjqfyGYNUMcSXfin3oRnxazYh7HBB84fwqU
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 13 - 0
Assets/Scripts/Core/BattleReport/BattleReportMassgeDataModule.cs

@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+
+namespace Core.BattleReport
+{
+    /// <summary>
+    /// 战斗描述模块
+    /// </summary>
+    public class BattleReportMassgeDataModule
+    {
+        public string name;
+        public List<ReportFightMassgeLogData> ReportFightMassgeLogDatas = new List<ReportFightMassgeLogData>();
+    }
+}

+ 3 - 0
Assets/Scripts/Core/BattleReport/BattleReportMassgeDataModule.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 791a23844f3446c0afabc76b6d01337b
+timeCreated: 1745911092

+ 49 - 0
Assets/Scripts/Core/BattleReport/BattleReportValueDataModule.cs

@@ -0,0 +1,49 @@
+using System.Collections.Generic;
+
+namespace Core.BattleReport
+{
+    /// <summary>
+    /// 战斗value数据模块
+    /// </summary>
+    public class BattleReportValueDataModule
+    {
+        public string name;
+
+        public Dictionary<string, ReportFightValueData<long>> fightValueData_long =
+            new Dictionary<string, ReportFightValueData<long>>();
+
+        public void SetMax(string name, long value)
+        {
+            if (!fightValueData_long.ContainsKey(name))
+            {
+                fightValueData_long.Add(name, new ReportFightValueData<long>()
+                {
+                    name = name,
+                    value = 0,
+                    maxValue = value
+                });
+            }
+            else
+            {
+                fightValueData_long[name].maxValue = value;
+            }
+        }
+
+        public void Add(string name, long value)
+        {
+            if (!fightValueData_long.ContainsKey(name))
+            {
+                fightValueData_long.Add(name, new ReportFightValueData<long>()
+                {
+                    name = name,
+                    value = value,
+                    maxValue = value
+                });
+            }
+            else
+            {
+                fightValueData_long[name].value = value;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/BattleReport/BattleReportValueDataModule.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 26dca967ead94c5cad6b6e648f448958
+timeCreated: 1745911033

+ 11 - 0
Assets/Scripts/Core/BattleReport/ReportFightMassgeLogData.cs

@@ -0,0 +1,11 @@
+namespace Core.BattleReport
+{
+    /// <summary>
+    /// 战斗详情日志
+    /// </summary>
+    public struct ReportFightMassgeLogData
+    {
+        public float time;
+        public string msg;
+    }
+}

+ 3 - 0
Assets/Scripts/Core/BattleReport/ReportFightMassgeLogData.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 10c3af119477491a9620ddadbe119970
+timeCreated: 1745910739

+ 19 - 0
Assets/Scripts/Core/BattleReport/ReportFightMassgeLogDataModule.cs

@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+using Fort23.UTool;
+
+namespace Core.BattleReport
+{
+    public class ReportFightMassgeLogDataModule
+    {
+        public List<ReportFightMassgeLogData> ReportFightMassgeLogDatas = new List<ReportFightMassgeLogData>();
+
+        public void Add(float t, string m)
+        {
+            ReportFightMassgeLogData reportFightMassgeLogData = new ReportFightMassgeLogData();
+            reportFightMassgeLogData.time = t;
+            reportFightMassgeLogData.msg = m;
+            ReportFightMassgeLogDatas.Add(reportFightMassgeLogData);
+            // LogTool.Log($"{t} {m}");
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/Core/BattleReport/ReportFightMassgeLogDataModule.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 616fc39061e64df79aa846ee31b2503a
+timeCreated: 1745913052

+ 12 - 0
Assets/Scripts/Core/BattleReport/ReportFightValueData.cs

@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+
+namespace Core.BattleReport
+{
+    public class ReportFightValueData<T>
+    {
+        public string name;
+        public T value;
+        public T maxValue;
+        public int bl = 1;
+    }
+}

+ 3 - 0
Assets/Scripts/Core/BattleReport/ReportFightValueData.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 1cec5c97058e4fac9f1c0226a96156b3
+timeCreated: 1745910486

+ 6 - 0
Assets/Scripts/GameData/ExcelConfig/GameConstantConfig.cs

@@ -74,6 +74,12 @@ public int[] equipmentRarityAttributeFactor;
 public int DetectEventCount;
 
 
+		/// <summary>
+		///大道的默认转速(秒/圈)
+		/// </summary>
+public float DadaoPerCircle;
+
+
 	}
 
 }

+ 2 - 0
Assets/Scripts/GameLogic/Combat/CombatState/CombatFightState.cs

@@ -1,4 +1,5 @@
 using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.CombatTool.CombatReport;
 using GameLogic.Combat.Hero;
 using UnityEngine;
 
@@ -17,6 +18,7 @@ namespace GameLogic.Combat.CombatState
             CombatController.CombatCameraControllder.isStop = true;
             CombatController.IsFightState = true;
             CombatController.currActiveCombat.CombatCameraControllder.SetFieldOfView(55,3);
+            CombatReportManager.Instance.AddCombatReportInfo(playerHeroEntity);
         }
 
         protected override void ProExit()

+ 5 - 1
Assets/Scripts/GameLogic/Combat/CombatTool/CombatController.cs

@@ -8,6 +8,7 @@ using Excel2Json;
 using Fort23.Core;
 using GameLogic.Combat.CombatGuide;
 using GameLogic.Combat.CombatState;
+using GameLogic.Combat.CombatTool.CombatReport;
 using GameLogic.Combat.CombatType;
 using GameLogic.Combat.Hero.HeroGPU;
 using GameLogic.CombatScenesTool;
@@ -51,6 +52,7 @@ namespace GameLogic.Combat.CombatTool
         public bool IsFightState;
 
         public System.Action<bool> combatFinish;
+        public float combatTime;
 
         public CombatStateBasic CurrState
         {
@@ -59,6 +61,8 @@ namespace GameLogic.Combat.CombatTool
 
         public async CTask InitCombat(StartCombatInfo startCombatInfo)
         {
+            combatTime = 0;
+            CombatReportManager.Instance.Clear();
             // CombatGuideManager.Instance.Init();
             TimeLineSingletonEventManager.Instance.AddTimeLineBasic(this);
             GameTimeLineParticleFactory = new GameTimeLineParticleFactory();
@@ -121,7 +125,7 @@ namespace GameLogic.Combat.CombatTool
             }
 
             t *= speed;
-
+            combatTime += t;
             stateControl.Update(t);
             CombatTypeBasic?.Update(t);
             MagicWeaponCombatSence?.Update(t);

+ 3 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 21e6c3b607b2414988b04a5f74633164
+timeCreated: 1745911695

+ 133 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportEntityInfo.cs

@@ -0,0 +1,133 @@
+using System;
+using Common.Utility.CombatEvent;
+using Core.BattleReport;
+using Core.Language;
+using Fort23.Core;
+using GameLogic.Combat.Skill;
+
+namespace GameLogic.Combat.CombatTool.CombatReport
+{
+    public class CombatReportEntityInfo : IDisposable
+    {
+        public CombatHeroEntity CombatHeroEntity;
+
+
+        /// <summary>
+        /// 英雄数据面板
+        /// </summary>
+        public BattleReportValueDataModule HeroInfoModule = new BattleReportValueDataModule();
+
+        /// <summary>
+        /// 战斗照成信息面板
+        /// </summary>
+        public BattleReportValueDataModule CombatInfoModule = new BattleReportValueDataModule();
+
+        /// <summary>
+        /// 治疗信息
+        /// </summary>
+        public BattleReportValueDataModule zhiLiao = new BattleReportValueDataModule();
+
+        /// <summary>
+        /// 战斗受到伤害信息面板
+        /// </summary>
+        public BattleReportValueDataModule InjuredInfoModule = new BattleReportValueDataModule();
+
+        /// <summary>
+        /// 战斗日子面板
+        /// </summary>
+        public ReportFightMassgeLogDataModule MsgModule = new ReportFightMassgeLogDataModule();
+
+        public void Init(CombatHeroEntity combatHeroEntity)
+        {
+            CombatHeroEntity = combatHeroEntity;
+
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+            CombatEventManager.Instance.AddEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
+        }
+
+        private void RecoverUpdate(IEventData iEventData)
+        {
+            HarmUpdateEventData recoverUpdateEventData = iEventData as HarmUpdateEventData;
+            if (recoverUpdateEventData.HarmReturnInfo.source == CombatHeroEntity)
+            {
+                string msg =
+                    $"我治疗了目标  {recoverUpdateEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName}" +
+                    $"  治疗量  {recoverUpdateEventData.HarmReturnInfo.att} 治疗类型 {recoverUpdateEventData.HarmReturnInfo.attType}";
+                float t = CombatController.currActiveCombat.combatTime;
+                MsgModule.Add(t, msg);
+
+                string harmKey = "无";
+                SkillBasic skillBasic = recoverUpdateEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
+                if (skillBasic != null)
+                {
+                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
+                }
+
+                zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att);
+            }
+            else if (recoverUpdateEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                string msg =
+                    $"被治疗  {recoverUpdateEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName}" +
+                    $"  受到治疗  {recoverUpdateEventData.HarmReturnInfo.att} 治疗类型 {recoverUpdateEventData.HarmReturnInfo.attType} 治疗来源{recoverUpdateEventData.HarmReturnInfo.triggerData.Source}";
+                float t = CombatController.currActiveCombat.combatTime;
+                MsgModule.Add(t, msg);
+
+                string harmKey = "无";
+                SkillBasic skillBasic = recoverUpdateEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
+                if (skillBasic != null)
+                {
+                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
+                }
+
+                zhiLiao.Add(harmKey, recoverUpdateEventData.HarmReturnInfo.att);
+            }
+        }
+
+        private void HeroInjured(IEventData iEventData)
+        {
+            HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
+            {
+                string msg =
+                    $"我攻击了目标  {heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.CurrCombatHeroInfo.heroName}" +
+                    $"  造成伤害  {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType}";
+                float t = CombatController.currActiveCombat.combatTime;
+                MsgModule.Add(t, msg);
+
+                string harmKey = "无";
+                SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
+                if (skillBasic != null)
+                {
+                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
+                }
+
+                CombatInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att);
+            }
+            else if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                string msg =
+                    $"被攻击  {heroInjuredEventData.HarmReturnInfo.source.CurrCombatHeroInfo.heroName}" +
+                    $"  受到伤害  {heroInjuredEventData.HarmReturnInfo.att} 伤害类型 {heroInjuredEventData.HarmReturnInfo.attType}";
+                float t = CombatController.currActiveCombat.combatTime;
+                MsgModule.Add(t, msg);
+
+                string harmKey = "无";
+                SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
+                if (skillBasic != null)
+                {
+                    harmKey = LanguageManager.Instance.Text(skillBasic.SelfSkillConfig.name);
+                }
+
+                InjuredInfoModule.Add(harmKey, heroInjuredEventData.HarmReturnInfo.att);
+            }
+        }
+
+        public void Dispose()
+        {
+            CombatHeroEntity = null;
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.RecoverUpdate, RecoverUpdate);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportEntityInfo.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 4533f24441ac44dc8b3d6c39f69ad84f
+timeCreated: 1745912563

+ 57 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportManager.cs

@@ -0,0 +1,57 @@
+using System.Collections.Generic;
+using Utility;
+
+namespace GameLogic.Combat.CombatTool.CombatReport
+{
+    public class CombatReportManager : Singleton<CombatReportManager>
+    {
+        public List<CombatReportEntityInfo> allCombatReportInfo = new List<CombatReportEntityInfo>();
+
+        public int CombatId = 0;
+#if COMBAT_SERVER
+        public bool isSaveCombat = false;
+        public bool isAllLog = false;
+#elif UNITY_EDITOR
+        public bool isSaveCombat = false;
+        public bool isAllLog = false;
+#else
+     public bool isSaveCombat = false;
+    public bool isAllLog = false;
+#endif
+
+#if COMBAT_SERVER
+        public CombatReportManager()
+        {
+            isSaveCombat = GameStart.saveCombatFileInfo;
+            isAllLog = GameStart.saveCombatFileInfo;
+        }
+#endif
+
+
+        public void SetCombatId(int id)
+        {
+            CombatId = id;
+        }
+
+        public void AddCombatReportInfo(CombatHeroEntity combatReportHeroInfo)
+        {
+            CombatReportEntityInfo combatReportEntityInfo = new CombatReportEntityInfo();
+            combatReportEntityInfo.Init(combatReportHeroInfo);
+            allCombatReportInfo.Add(combatReportEntityInfo);
+        }
+
+        public void Clear()
+        {
+            allCombatReportInfo.Clear();
+            CombatId = 0;
+        }
+
+        public void Update()
+        {
+            if (!isSaveCombat)
+            {
+                return;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatReport/CombatReportManager.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 0f63ba75ae134093ac6e9dc24a11f3be
+timeCreated: 1745911700

+ 12 - 10
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs

@@ -8,6 +8,7 @@ using Fort23.Core;
 using Fort23.UTool;
 using GameLogic.Combat.Buff;
 using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.CombatTool.CombatReport;
 using GameLogic.Combat.Hero;
 using GameLogic.Combat.Hero.HeroGPU;
 using GameLogic.Player;
@@ -25,6 +26,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
     public int heroDieNodeId;
 
     public bool isPlayer;
+
     public string guidName
     {
         get { return CurrCombatHeroInfo.modelName; }
@@ -75,7 +77,7 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
 
     public virtual async CTask<CombatHeroEntity> Init(CombatAIBasic combatAIBasic, CombatHeroInfo combatHeroInfo,
         Vector3 pos,
-        System.Action<CombatHeroEntity> callBack = null,bool isPlayer=false)
+        System.Action<CombatHeroEntity> callBack = null, bool isPlayer = false)
     {
         //后面记到检查战斗里面不要出现异步加载,也不要出现同步IO加载
         this.isPlayer = isPlayer;
@@ -162,15 +164,15 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         poolInterface.own.SetActive(true);
         combatHeroAnimtion.Init(this);
         CombatAIBasic.ChangeState(CombatHeroStateType.XiuMian);
-        if (IsEnemy )
+        if (IsEnemy)
         {
             CreateHeroHpEventData createHeroHpEventData = CreateHeroHpEventData.Create();
             createHeroHpEventData.combatHeroEntity = this;
             EventManager.Instance.Dispatch(CustomEventType.CreateHeroHp, createHeroHpEventData);
         }
 
-        await heroMagicWeaponControl.InitMagicWeapon(this,isPlayer);
-
+        await heroMagicWeaponControl.InitMagicWeapon(this, isPlayer);
+        CombatReportManager.Instance.AddCombatReportInfo(this);
         callBack?.Invoke(this);
 #endif
         return this;
@@ -292,12 +294,11 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
             return;
         }
 
-        IBarrier shieldsBarrier=  harmReturnInfo.triggerData.IBarrier as IBarrier;
-        if (shieldsBarrier!=null)
+        IBarrier shieldsBarrier = harmReturnInfo.triggerData.IBarrier as IBarrier;
+        if (shieldsBarrier != null)
         {
-             shieldsBarrier.Harm(harmReturnInfo);
-             harmReturnInfo.harmType |= HarmType.Shields;
-
+            shieldsBarrier.Harm(harmReturnInfo);
+            harmReturnInfo.harmType |= HarmType.Shields;
         }
         else
         {
@@ -312,10 +313,11 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
             combatHeroGameObject.HeroGPUMono.injuriedStrength = 0;
             _isAddinjuriedShow = true;
         }
+
         HeroInjuredEventData heroInjured = HeroInjuredEventData.Create();
         heroInjured.HarmReturnInfo = harmReturnInfo;
         CombatEventManager.Instance.Dispatch(CombatEventType.HeroInjured, heroInjured);
-        
+
         HeroHpUpdateEventData heroHpUpdateEventData = HeroHpUpdateEventData.Create();
         heroHpUpdateEventData.combatHeroEntity = this;
         CombatEventManager.Instance.Dispatch(CombatEventType.HeroHpUpdate, heroHpUpdateEventData);

二进制
Excel2Json/Excel/GameConstant.xlsx


二进制
Excel2Json/Excel/HeroModel.xlsx


二进制
Excel2Json/Excel/skill.xlsx


二进制
Excel2Json/Excel/修仙游戏数据规划表.xlsx


+ 48 - 0
UIElementsSchema/GlobalNamespace.xsd

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:complexType name="TabButtonType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="text" type="xs:string" use="optional" />
+        <xs:attribute default="" name="target" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="TabButton" substitutionGroup="engine:VisualElement" type="TabButtonType" />
+  <xs:complexType name="TabbedViewType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="TabbedView" substitutionGroup="engine:VisualElement" type="TabbedViewType" />
+</xs:schema>

+ 27 - 0
UIElementsSchema/UIElements.xsd

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:import schemaLocation="UnityEditor.UIElements.xsd" namespace="UnityEditor.UIElements" />
+  <xs:import schemaLocation="UnityEditor.U2D.Animation.xsd" namespace="UnityEditor.U2D.Animation" />
+  <xs:import schemaLocation="UnityEditor.U2D.Animation.SpriteLibraryEditor.xsd" namespace="UnityEditor.U2D.Animation.SpriteLibraryEditor" />
+  <xs:import schemaLocation="UnityEditor.U2D.Layout.xsd" namespace="UnityEditor.U2D.Layout" />
+  <xs:import schemaLocation="UnityEditor.U2D.Animation.Upgrading.xsd" namespace="UnityEditor.U2D.Animation.Upgrading" />
+  <xs:import schemaLocation="UnityEditor.Tilemaps.xsd" namespace="UnityEditor.Tilemaps" />
+  <xs:import schemaLocation="Unity.Entities.Editor.xsd" namespace="Unity.Entities.Editor" />
+  <xs:import schemaLocation="Unity.Entities.Editor.UIElements.xsd" namespace="Unity.Entities.Editor.UIElements" />
+  <xs:import schemaLocation="UnityEditor.ShaderGraph.Drawing.xsd" namespace="UnityEditor.ShaderGraph.Drawing" />
+  <xs:include schemaLocation="GlobalNamespace.xsd" />
+  <xs:import schemaLocation="Unity.MemoryProfiler.Editor.UI.xsd" namespace="Unity.MemoryProfiler.Editor.UI" />
+  <xs:import schemaLocation="Unity.Entities.UI.xsd" namespace="Unity.Entities.UI" />
+  <xs:import schemaLocation="Unity.Editor.Bridge.xsd" namespace="Unity.Editor.Bridge" />
+  <xs:import schemaLocation="Unity.Services.Core.Editor.Environments.UI.xsd" namespace="Unity.Services.Core.Editor.Environments.UI" />
+  <xs:import schemaLocation="UnityEditor.Rendering.LookDev.xsd" namespace="UnityEditor.Rendering.LookDev" />
+  <xs:import schemaLocation="UnityEditor.UIElements.Debugger.xsd" namespace="UnityEditor.UIElements.Debugger" />
+  <xs:import schemaLocation="Unity.UI.Builder.xsd" namespace="Unity.UI.Builder" />
+  <xs:import schemaLocation="UnityEditor.Search.xsd" namespace="UnityEditor.Search" />
+  <xs:import schemaLocation="UnityEditor.Experimental.GraphView.xsd" namespace="UnityEditor.Experimental.GraphView" />
+  <xs:import schemaLocation="UnityEditor.PackageManager.UI.Internal.xsd" namespace="UnityEditor.PackageManager.UI.Internal" />
+  <xs:import schemaLocation="UnityEditor.Overlays.xsd" namespace="UnityEditor.Overlays" />
+  <xs:import schemaLocation="Unity.Profiling.Editor.xsd" namespace="Unity.Profiling.Editor" />
+  <xs:import schemaLocation="UnityEditor.ShortcutManagement.xsd" namespace="UnityEditor.ShortcutManagement" />
+</xs:schema>

+ 70 - 0
UIElementsSchema/Unity.Editor.Bridge.xsd

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.Editor.Bridge" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:simpleType name="TreeView_selection-type_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None" />
+      <xs:enumeration value="Single" />
+      <xs:enumeration value="Multiple" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="TreeViewType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="30" name="item-height" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="show-border" type="xs:boolean" use="optional" />
+        <xs:attribute default="Single" name="selection-type" xmlns:q1="Unity.Editor.Bridge" type="q1:TreeView_selection-type_Type" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="TreeView" substitutionGroup="engine:VisualElement" xmlns:q2="Unity.Editor.Bridge" type="q2:TreeViewType" />
+  <xs:simpleType name="ListView_selection-type_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None" />
+      <xs:enumeration value="Single" />
+      <xs:enumeration value="Multiple" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="ListView_show-alternating-row-backgrounds_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None" />
+      <xs:enumeration value="ContentOnly" />
+      <xs:enumeration value="All" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="ListViewType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:attribute default="30" name="item-height" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="show-border" type="xs:boolean" use="optional" />
+        <xs:attribute default="Single" name="selection-type" xmlns:q3="Unity.Editor.Bridge" type="q3:ListView_selection-type_Type" use="optional" />
+        <xs:attribute default="None" name="show-alternating-row-backgrounds" xmlns:q4="Unity.Editor.Bridge" type="q4:ListView_show-alternating-row-backgrounds_Type" use="optional" />
+        <xs:attribute default="true" name="show-bound-collection-size" type="xs:boolean" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ListView" substitutionGroup="engine:VisualElement" xmlns:q5="Unity.Editor.Bridge" type="q5:ListViewType" />
+</xs:schema>

+ 54 - 0
UIElementsSchema/Unity.Entities.Editor.UIElements.xsd

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.Entities.Editor.UIElements" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:simpleType name="SearchField_keyboard-type_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Default" />
+      <xs:enumeration value="ASCIICapable" />
+      <xs:enumeration value="NumbersAndPunctuation" />
+      <xs:enumeration value="URL" />
+      <xs:enumeration value="NumberPad" />
+      <xs:enumeration value="PhonePad" />
+      <xs:enumeration value="NamePhonePad" />
+      <xs:enumeration value="EmailAddress" />
+      <xs:enumeration value="NintendoNetworkAccount" />
+      <xs:enumeration value="Social" />
+      <xs:enumeration value="Search" />
+      <xs:enumeration value="DecimalPad" />
+      <xs:enumeration value="OneTimeCode" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="SearchFieldType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="true" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:attribute default="" name="label" type="xs:string" use="optional" />
+        <xs:attribute default="" name="value" type="xs:string" use="optional" />
+        <xs:attribute default="-1" name="max-length" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="password" type="xs:boolean" use="optional" />
+        <xs:attribute default="*" name="mask-character" type="xs:string" use="optional" />
+        <xs:attribute default="false" name="readonly" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="is-delayed" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="hide-mobile-input" type="xs:boolean" use="optional" />
+        <xs:attribute default="Default" name="keyboard-type" xmlns:q1="Unity.Entities.Editor.UIElements" type="q1:SearchField_keyboard-type_Type" use="optional" />
+        <xs:attribute default="false" name="auto-correction" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="multiline" type="xs:boolean" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="SearchField" substitutionGroup="engine:VisualElement" xmlns:q2="Unity.Entities.Editor.UIElements" type="q2:SearchFieldType" />
+</xs:schema>

+ 182 - 0
UIElementsSchema/Unity.Entities.Editor.xsd

@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.Entities.Editor" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:complexType name="FoldoutFieldType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="FoldoutField" substitutionGroup="engine:VisualElement" xmlns:q1="Unity.Entities.Editor" type="q1:FoldoutFieldType" />
+  <xs:complexType name="SelectableLabelType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:attribute default="" name="text" type="xs:string" use="optional" />
+        <xs:attribute default="true" name="enable-rich-text" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="parse-escape-sequences" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="display-tooltip-when-elided" type="xs:boolean" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="SelectableLabel" substitutionGroup="engine:VisualElement" xmlns:q2="Unity.Entities.Editor" type="q2:SelectableLabelType" />
+  <xs:complexType name="TabViewType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="TabView" substitutionGroup="engine:VisualElement" xmlns:q3="Unity.Entities.Editor" type="q3:TabViewType" />
+  <xs:complexType name="HierarchyNameElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="HierarchyNameElement" substitutionGroup="engine:VisualElement" xmlns:q4="Unity.Entities.Editor" type="q4:HierarchyNameElementType" />
+  <xs:complexType name="TabContentType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="TabContent" substitutionGroup="engine:VisualElement" xmlns:q5="Unity.Entities.Editor" type="q5:TabContentType" />
+  <xs:complexType name="CenteredMessageElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="title" type="xs:string" use="optional" />
+        <xs:attribute default="" name="message" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="CenteredMessageElement" substitutionGroup="engine:VisualElement" xmlns:q6="Unity.Entities.Editor" type="q6:CenteredMessageElementType" />
+  <xs:complexType name="SearchElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="search-data" type="xs:string" use="optional" />
+        <xs:attribute default="" name="search-filters" type="xs:string" use="optional" />
+        <xs:attribute default="" name="source-data" type="xs:string" use="optional" />
+        <xs:attribute default="" name="filtered-data" type="xs:string" use="optional" />
+        <xs:attribute default="OrdinalIgnoreCase" name="global-string-comparison" type="xs:string" use="optional" />
+        <xs:attribute default="sync" name="handler-type" type="xs:string" use="optional" />
+        <xs:attribute default="200" name="search-delay" type="xs:int" use="optional" />
+        <xs:attribute default="33" name="max-frame-time" type="xs:int" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="SearchElement" substitutionGroup="engine:VisualElement" xmlns:q7="Unity.Entities.Editor" type="q7:SearchElementType" />
+  <xs:complexType name="SpinnerElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="SpinnerElement" substitutionGroup="engine:VisualElement" xmlns:q8="Unity.Entities.Editor" type="q8:SpinnerElementType" />
+</xs:schema>

+ 48 - 0
UIElementsSchema/Unity.Entities.UI.xsd

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.Entities.UI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:complexType name="PropertyElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="PropertyElement" substitutionGroup="engine:VisualElement" xmlns:q1="Unity.Entities.UI" type="q1:PropertyElementType" />
+  <xs:complexType name="InspectorElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="InspectorElement" substitutionGroup="engine:VisualElement" xmlns:q2="Unity.Entities.UI" type="q2:InspectorElementType" />
+</xs:schema>

+ 367 - 0
UIElementsSchema/Unity.MemoryProfiler.Editor.UI.xsd

@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.MemoryProfiler.Editor.UI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:complexType name="MemoryBarElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="MemoryBarElement" substitutionGroup="engine:VisualElement" xmlns:q1="Unity.MemoryProfiler.Editor.UI" type="q1:MemoryBarElementType" />
+  <xs:complexType name="CountDeltaCellType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="CountDeltaCell" substitutionGroup="engine:VisualElement" xmlns:q2="Unity.MemoryProfiler.Editor.UI" type="q2:CountDeltaCellType" />
+  <xs:complexType name="DeltaBarCellType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="DeltaBarCell" substitutionGroup="engine:VisualElement" xmlns:q3="Unity.MemoryProfiler.Editor.UI" type="q3:DeltaBarCellType" />
+  <xs:complexType name="ActivityIndicatorType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ActivityIndicator" substitutionGroup="engine:VisualElement" xmlns:q4="Unity.MemoryProfiler.Editor.UI" type="q4:ActivityIndicatorType" />
+  <xs:complexType name="ProgressBarType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ProgressBar" substitutionGroup="engine:VisualElement" xmlns:q5="Unity.MemoryProfiler.Editor.UI" type="q5:ProgressBarType" />
+  <xs:complexType name="ActivityIndicatorOverlayType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ActivityIndicatorOverlay" substitutionGroup="engine:VisualElement" xmlns:q6="Unity.MemoryProfiler.Editor.UI" type="q6:ActivityIndicatorOverlayType" />
+  <xs:complexType name="RibbonButtonType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="Button" name="text" type="xs:string" use="optional" />
+        <xs:attribute default="false" name="toggled" type="xs:boolean" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="RibbonButton" substitutionGroup="engine:VisualElement" xmlns:q7="Unity.MemoryProfiler.Editor.UI" type="q7:RibbonButtonType" />
+  <xs:simpleType name="InfoBox_issue-level_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Info" />
+      <xs:enumeration value="Warning" />
+      <xs:enumeration value="Error" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="InfoBoxType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="Info" name="issue-level" xmlns:q8="Unity.MemoryProfiler.Editor.UI" type="q8:InfoBox_issue-level_Type" use="optional" />
+        <xs:attribute default="Info about something..." name="message" type="xs:string" use="optional" />
+        <xs:attribute name="documentation-link" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="InfoBox" substitutionGroup="engine:VisualElement" xmlns:q9="Unity.MemoryProfiler.Editor.UI" type="q9:InfoBoxType" />
+  <xs:complexType name="ToolbarDropDownButtonType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ToolbarDropDownButton" substitutionGroup="engine:VisualElement" xmlns:q10="Unity.MemoryProfiler.Editor.UI" type="q10:ToolbarDropDownButtonType" />
+  <xs:complexType name="AllTrackedMemoryDescriptionCellType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="AllTrackedMemoryDescriptionCell" substitutionGroup="engine:VisualElement" xmlns:q11="Unity.MemoryProfiler.Editor.UI" type="q11:AllTrackedMemoryDescriptionCellType" />
+  <xs:simpleType name="Ribbon_alignment_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Auto" />
+      <xs:enumeration value="FlexStart" />
+      <xs:enumeration value="Center" />
+      <xs:enumeration value="FlexEnd" />
+      <xs:enumeration value="Stretch" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="RibbonType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element xmlns:q12="Unity.MemoryProfiler.Editor.UI" ref="q12:RibbonButton" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="Center" name="alignment" xmlns:q13="Unity.MemoryProfiler.Editor.UI" type="q13:Ribbon_alignment_Type" use="optional" />
+        <xs:attribute default="false" name="show-help-button" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="show-menu-button" type="xs:boolean" use="optional" />
+        <xs:attribute default="0" name="initial-option" type="xs:int" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="Ribbon" substitutionGroup="engine:VisualElement" xmlns:q14="Unity.MemoryProfiler.Editor.UI" type="q14:RibbonType" />
+  <xs:complexType name="UnityObjectsDescriptionCellType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="UnityObjectsDescriptionCell" substitutionGroup="engine:VisualElement" xmlns:q15="Unity.MemoryProfiler.Editor.UI" type="q15:UnityObjectsDescriptionCellType" />
+  <xs:complexType name="DropDownButtonType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="Button" name="button-text" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="DropDownButton" substitutionGroup="engine:VisualElement" xmlns:q16="Unity.MemoryProfiler.Editor.UI" type="q16:DropDownButtonType" />
+  <xs:complexType name="BackgroundPatternType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="1" name="scale" type="xs:float" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="BackgroundPattern" substitutionGroup="engine:VisualElement" xmlns:q17="Unity.MemoryProfiler.Editor.UI" type="q17:BackgroundPatternType" />
+  <xs:simpleType name="ObjectOrTypeLabel_data-type_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="PureCSharpType" />
+      <xs:enumeration value="NativeUnityType" />
+      <xs:enumeration value="UnifiedUnityType" />
+      <xs:enumeration value="ManagedObject" />
+      <xs:enumeration value="NativeObject" />
+      <xs:enumeration value="UnifiedUnityObject" />
+      <xs:enumeration value="LeakedShell" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="ObjectOrTypeLabelType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="UnifiedUnityObject" name="data-type" xmlns:q18="Unity.MemoryProfiler.Editor.UI" type="q18:ObjectOrTypeLabel_data-type_Type" use="optional" />
+        <xs:attribute default="GameObject" name="native-type-name" type="xs:string" use="optional" />
+        <xs:attribute default="UnityEngine.GameObject" name="managed-type-name" type="xs:string" use="optional" />
+        <xs:attribute default="Cube" name="managed-object-name" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="ObjectOrTypeLabel" substitutionGroup="engine:VisualElement" xmlns:q19="Unity.MemoryProfiler.Editor.UI" type="q19:ObjectOrTypeLabelType" />
+  <xs:complexType name="DetailedSizeBarType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="DetailedSizeBar" substitutionGroup="engine:VisualElement" xmlns:q20="Unity.MemoryProfiler.Editor.UI" type="q20:DetailedSizeBarType" />
+</xs:schema>

+ 104 - 0
UIElementsSchema/Unity.Profiling.Editor.xsd

@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.Profiling.Editor" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:simpleType name="SelectableLabel_keyboard-type_Type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Default" />
+      <xs:enumeration value="ASCIICapable" />
+      <xs:enumeration value="NumbersAndPunctuation" />
+      <xs:enumeration value="URL" />
+      <xs:enumeration value="NumberPad" />
+      <xs:enumeration value="PhonePad" />
+      <xs:enumeration value="NamePhonePad" />
+      <xs:enumeration value="EmailAddress" />
+      <xs:enumeration value="NintendoNetworkAccount" />
+      <xs:enumeration value="Social" />
+      <xs:enumeration value="Search" />
+      <xs:enumeration value="DecimalPad" />
+      <xs:enumeration value="OneTimeCode" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="SelectableLabelType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="true" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="" name="binding-path" type="xs:string" use="optional" />
+        <xs:attribute default="" name="label" type="xs:string" use="optional" />
+        <xs:attribute default="" name="value" type="xs:string" use="optional" />
+        <xs:attribute default="-1" name="max-length" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="password" type="xs:boolean" use="optional" />
+        <xs:attribute default="*" name="mask-character" type="xs:string" use="optional" />
+        <xs:attribute default="false" name="readonly" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="is-delayed" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="hide-mobile-input" type="xs:boolean" use="optional" />
+        <xs:attribute default="Default" name="keyboard-type" xmlns:q1="Unity.Profiling.Editor" type="q1:SelectableLabel_keyboard-type_Type" use="optional" />
+        <xs:attribute default="false" name="auto-correction" type="xs:boolean" use="optional" />
+        <xs:attribute default="false" name="multiline" type="xs:boolean" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="SelectableLabel" substitutionGroup="engine:VisualElement" xmlns:q2="Unity.Profiling.Editor" type="q2:SelectableLabelType" />
+  <xs:complexType name="MemoryUsageBreakdownType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element xmlns:q3="Unity.Profiling.Editor" ref="q3:MemoryUsageBreakdownElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="Memory Usage" name="header-text" type="xs:string" use="optional" />
+        <xs:attribute default="1288490240" name="total-bytes" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="show-unknown" type="xs:boolean" use="optional" />
+        <xs:attribute default="Unknown" name="unknown-name" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="MemoryUsageBreakdown" substitutionGroup="engine:VisualElement" xmlns:q4="Unity.Profiling.Editor" type="q4:MemoryUsageBreakdownType" />
+  <xs:complexType name="MemoryUsageBreakdownElementType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:attribute default="Other" name="text" type="xs:string" use="optional" />
+        <xs:attribute default="" name="background-color-class" type="xs:string" use="optional" />
+        <xs:attribute default="false" name="show-used" type="xs:boolean" use="optional" />
+        <xs:attribute default="50" name="used-bytes" type="xs:long" use="optional" />
+        <xs:attribute default="100" name="total-bytes" type="xs:long" use="optional" />
+        <xs:attribute default="false" name="show-selected" type="xs:boolean" use="optional" />
+        <xs:attribute default="0" name="selected-bytes" type="xs:long" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="MemoryUsageBreakdownElement" substitutionGroup="engine:VisualElement" xmlns:q5="Unity.Profiling.Editor" type="q5:MemoryUsageBreakdownElementType" />
+</xs:schema>

+ 25 - 0
UIElementsSchema/Unity.Services.Core.Editor.Environments.UI.xsd

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:editor="UnityEditor.UIElements" xmlns:engine="UnityEngine.UIElements" xmlns="UnityEditor.ShortcutManagement" elementFormDefault="qualified" targetNamespace="Unity.Services.Core.Editor.Environments.UI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="UnityEngine.UIElements.xsd" namespace="UnityEngine.UIElements" />
+  <xs:complexType name="EnvironmentViewType">
+    <xs:complexContent mixed="false">
+      <xs:restriction base="engine:VisualElementType">
+        <xs:sequence minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="engine:VisualElement" />
+        </xs:sequence>
+        <xs:attribute default="" name="name" type="xs:string" use="optional" />
+        <xs:attribute default="" name="view-data-key" type="xs:string" use="optional" />
+        <xs:attribute default="Position" name="picking-mode" type="engine:VisualElement_picking-mode_Type" use="optional" />
+        <xs:attribute default="" name="tooltip" type="xs:string" use="optional" />
+        <xs:attribute default="None" name="usage-hints" type="engine:VisualElement_usage-hints_Type" use="optional" />
+        <xs:attribute default="0" name="tabindex" type="xs:int" use="optional" />
+        <xs:attribute default="false" name="focusable" type="xs:boolean" use="optional" />
+        <xs:attribute default="" name="class" type="xs:string" use="optional" />
+        <xs:attribute default="" name="content-container" type="xs:string" use="optional" />
+        <xs:attribute default="" name="style" type="xs:string" use="optional" />
+        <xs:anyAttribute processContents="lax" />
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="EnvironmentView" substitutionGroup="engine:VisualElement" xmlns:q1="Unity.Services.Core.Editor.Environments.UI" type="q1:EnvironmentViewType" />
+</xs:schema>

部分文件因为文件数量过多而无法显示