diff --git a/Assets/ModuleCore/ModuleUI.meta b/Assets/ModuleCore/ModuleUI.meta
new file mode 100644
index 0000000..9718316
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUI.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ee662750a93822c408a0c1d04b7bb488
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleUI/ModuleUI.cs b/Assets/ModuleCore/ModuleUI/ModuleUI.cs
new file mode 100644
index 0000000..6a430e9
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUI/ModuleUI.cs
@@ -0,0 +1,14 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using MuHua;
+
+///
+/// UI模块
+///
+public class ModuleUI : ModuleSingle {
+
+
+ protected override void Awake() => NoReplace();
+
+}
diff --git a/Assets/ModuleCore/ModuleUI/ModuleUI.cs.meta b/Assets/ModuleCore/ModuleUI/ModuleUI.cs.meta
new file mode 100644
index 0000000..8af9b3b
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUI/ModuleUI.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a3ee54ac782eb1d4a9c8b92a859c3d38
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleUIPage.meta b/Assets/ModuleCore/ModuleUIPage.meta
new file mode 100644
index 0000000..cf732fe
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUIPage.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b4d3d9edca07b4c4e9e7128eb34a1511
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ModuleCore/ModuleUIPage/UITestPage.cs b/Assets/ModuleCore/ModuleUIPage/UITestPage.cs
new file mode 100644
index 0000000..7138816
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUIPage/UITestPage.cs
@@ -0,0 +1,41 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UIElements;
+using MuHua;
+
+///
+/// 测试页面
+///
+public class UITestPage : ModuleUIPage {
+ public VisualTreeAsset TemplateAsset;
+ public List list;
+
+ private UIToggle toggle;
+ private UIDropdown dropdown;
+ private UIScrollView scrollView;
+
+ public override VisualElement Element => root;
+
+ public VisualElement Toggle => Q("Toggle");
+ public VisualElement Dropdown => Q("Dropdown");
+ public VisualElement ScrollView => Q("ScrollView");
+
+ private void Awake() {
+ toggle = new UIToggle(Toggle);
+ toggle.ValueChanged += (value) => Debug.Log(value);
+
+ dropdown = new UIDropdown(Dropdown, root, TemplateAsset);
+ dropdown.SetValue(list);
+ dropdown.ValueChanged += (value) => Debug.Log(value);
+
+ scrollView = new UIScrollView(ScrollView, root, UIDirection.FromTopToBottom);
+ }
+ private void Update() {
+ dropdown.Update();
+ scrollView.Update();
+ }
+ private void OnDestroy() {
+ dropdown.Release();
+ }
+}
diff --git a/Assets/ModuleCore/ModuleUIPage/UITestPage.cs.meta b/Assets/ModuleCore/ModuleUIPage/UITestPage.cs.meta
new file mode 100644
index 0000000..99c56e9
--- /dev/null
+++ b/Assets/ModuleCore/ModuleUIPage/UITestPage.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a47690fe988195040a2e528bb2e8bce6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/SceneManager/SampleScene/SampleScene.unity b/Assets/SceneManager/SampleScene/SampleScene.unity
index a6c766b..3122f06 100644
--- a/Assets/SceneManager/SampleScene/SampleScene.unity
+++ b/Assets/SceneManager/SampleScene/SampleScene.unity
@@ -228,6 +228,56 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 218982090}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &321363682
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 321363683}
+ - component: {fileID: 321363684}
+ m_Layer: 0
+ m_Name: UITestPage
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &321363683
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 321363682}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1327183334}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &321363684
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 321363682}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a47690fe988195040a2e528bb2e8bce6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ document: {fileID: 1327183335}
+ TemplateAsset: {fileID: 9197481963319205126, guid: f2787443498675b4c80a0bcedd37c0dc, type: 3}
+ list:
+ - 111
+ - 222
+ - 333
--- !u!1 &495038689
GameObject:
m_ObjectHideFlags: 0
@@ -275,7 +325,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!4 &701611851
Transform:
m_ObjectHideFlags: 0
@@ -426,7 +476,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!4 &851831250
Transform:
m_ObjectHideFlags: 0
@@ -479,8 +529,8 @@ Camera:
m_GameObject: {fileID: 963194225}
m_Enabled: 1
serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
@@ -580,6 +630,68 @@ MonoBehaviour:
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
+--- !u!1 &1327183333
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1327183334}
+ - component: {fileID: 1327183335}
+ - component: {fileID: 1327183336}
+ m_Layer: 0
+ m_Name: "----\u754C\u9762\u6A21\u5757----"
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1327183334
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1327183333}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 321363683}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1327183335
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1327183333}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_PanelSettings: {fileID: 11400000, guid: 4caef6f0e9981084a9e0cbfd447fac06, type: 2}
+ m_ParentUI: {fileID: 0}
+ sourceAsset: {fileID: 9197481963319205126, guid: 31e24fa07355f6e42841c8f1d0e77e54, type: 3}
+ m_SortingOrder: 0
+--- !u!114 &1327183336
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1327183333}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a3ee54ac782eb1d4a9c8b92a859c3d38, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1334378334
GameObject:
m_ObjectHideFlags: 0
@@ -771,3 +883,4 @@ SceneRoots:
- {fileID: 701611851}
- {fileID: 495038690}
- {fileID: 851831250}
+ - {fileID: 1327183334}
diff --git a/Assets/UI Toolkit/Component/Dropdown.meta b/Assets/UI Toolkit/Component/Dropdown.meta
new file mode 100644
index 0000000..51c1d52
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 34cba154d61f21b40b40b8f2f13d76de
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss
new file mode 100644
index 0000000..8f3509d
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss
@@ -0,0 +1,110 @@
+.dropdown {
+ flex-grow: 0;
+ flex-direction: row;
+ height: 40px;
+ padding-top: 5px;
+ padding-right: 5px;
+ padding-bottom: 5px;
+ padding-left: 5px;
+}
+
+.dropdown-title {
+ margin-top: 0;
+ margin-right: 0;
+ margin-bottom: 0;
+ margin-left: 0;
+ padding-top: 0;
+ padding-right: 0;
+ padding-bottom: 0;
+ padding-left: 0;
+ min-width: 100px;
+ font-size: 18px;
+ -unity-text-align: middle-left;
+ color: rgb(255, 255, 255);
+}
+
+.dropdown-input {
+ flex-grow: 1;
+ background-color: rgb(229, 229, 229);
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 5px;
+ padding-right: 5px;
+ padding-bottom: 5px;
+ padding-left: 5px;
+}
+
+.dropdown-tag {
+ margin-top: 0;
+ margin-right: 0;
+ margin-bottom: 0;
+ margin-left: 0;
+ padding-top: 0;
+ padding-right: 0;
+ padding-bottom: 0;
+ padding-left: 0;
+ -unity-text-align: middle-left;
+}
+
+.dropdown-icon {
+ width: 20px;
+ height: 20px;
+}
+
+.dropdown-scrollview {
+ width: auto;
+ height: auto;
+ padding-top: 0;
+ padding-right: 0;
+ padding-bottom: 0;
+ padding-left: 0;
+ flex-grow: 1;
+ position: absolute;
+ top: 32px;
+ left: 0;
+ right: 0;
+ bottom: auto;
+ max-height: 100px;
+}
+
+.dropdown-container {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.dropdown-hide {
+ opacity: 0;
+ display: none;
+}
+
+.dropdown-unit {
+ margin-top: 0;
+ margin-right: 0;
+ margin-bottom: 0;
+ margin-left: 0;
+ background-color: rgba(0, 0, 0, 0);
+ padding-top: 5px;
+ padding-right: 5px;
+ padding-bottom: 5px;
+ padding-left: 5px;
+ height: 30px;
+ border-top-width: 0;
+ border-right-width: 0;
+ border-bottom-width: 0;
+ border-left-width: 0;
+ -unity-text-align: middle-left;
+ flex-direction: row-reverse;
+ align-items: center;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+.dropdown-unit:hover {
+ background-color: rgba(0, 0, 0, 0.2);
+}
diff --git a/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss.meta b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss.meta
new file mode 100644
index 0000000..73b7c4b
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1e0657eb9266c804ea6adea1a16c74b2
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
diff --git a/Assets/UI Toolkit/Component/Dropdown/Dropdown.uxml b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uxml
new file mode 100644
index 0000000..bdf060a
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uxml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assets/UI Toolkit/Component/Dropdown/Dropdown.uxml.meta b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uxml.meta
new file mode 100644
index 0000000..526d7c2
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown/Dropdown.uxml.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 58251f1c92414424eb285cc650757918
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Assets/UI Toolkit/Component/Dropdown/DropdownTemplate.uxml b/Assets/UI Toolkit/Component/Dropdown/DropdownTemplate.uxml
new file mode 100644
index 0000000..38ee251
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown/DropdownTemplate.uxml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Assets/UI Toolkit/Component/Dropdown/DropdownTemplate.uxml.meta b/Assets/UI Toolkit/Component/Dropdown/DropdownTemplate.uxml.meta
new file mode 100644
index 0000000..143fea5
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Dropdown/DropdownTemplate.uxml.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f2787443498675b4c80a0bcedd37c0dc
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Assets/UI Toolkit/Component/Toggle.meta b/Assets/UI Toolkit/Component/Toggle.meta
new file mode 100644
index 0000000..ed1348d
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Toggle.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e1a1aec9a6e95db489c4fa0e75fa3eaf
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UI Toolkit/Component/Toggle/Toggle.uss b/Assets/UI Toolkit/Component/Toggle/Toggle.uss
new file mode 100644
index 0000000..ebb8c6e
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Toggle/Toggle.uss
@@ -0,0 +1,52 @@
+.toggle {
+ width: auto;
+ height: 40px;
+ padding-top: 5px;
+ padding-right: 5px;
+ padding-bottom: 5px;
+ padding-left: 5px;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.toggle-title {
+ -unity-text-align: middle-left;
+ font-size: 18px;
+ color: rgb(255, 255, 255);
+ margin-top: 0;
+ margin-right: 0;
+ margin-bottom: 0;
+ margin-left: 0;
+ padding-top: 0;
+ padding-right: 0;
+ padding-bottom: 0;
+ padding-left: 0;
+}
+
+.toggle-input {
+ width: 20px;
+ height: 20px;
+ background-color: rgb(229, 229, 229);
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-left-color: rgb(51, 51, 51);
+ border-right-color: rgb(51, 51, 51);
+ border-top-color: rgb(51, 51, 51);
+ border-bottom-color: rgb(51, 51, 51);
+}
+
+.toggle-check {
+ flex-grow: 1;
+}
+
+.toggle-check-hide {
+ display: none;
+ opacity: 0;
+}
diff --git a/Assets/UI Toolkit/Component/Toggle/Toggle.uss.meta b/Assets/UI Toolkit/Component/Toggle/Toggle.uss.meta
new file mode 100644
index 0000000..ff8964f
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Toggle/Toggle.uss.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9110c01e0b68bd9429ca5de756897be0
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
diff --git a/Assets/UI Toolkit/Component/Toggle/Toggle.uxml b/Assets/UI Toolkit/Component/Toggle/Toggle.uxml
new file mode 100644
index 0000000..f80a1e2
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Toggle/Toggle.uxml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/Assets/UI Toolkit/Component/Toggle/Toggle.uxml.meta b/Assets/UI Toolkit/Component/Toggle/Toggle.uxml.meta
new file mode 100644
index 0000000..3d0fac9
--- /dev/null
+++ b/Assets/UI Toolkit/Component/Toggle/Toggle.uxml.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 1fb475832cb8d164fba93f4b38a10155
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Assets/UI Toolkit/Document.meta b/Assets/UI Toolkit/Document.meta
new file mode 100644
index 0000000..bd36154
--- /dev/null
+++ b/Assets/UI Toolkit/Document.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 498f074189938e8478e7fdf2a6d482cf
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/UI Toolkit/Document/Document.uss b/Assets/UI Toolkit/Document/Document.uss
new file mode 100644
index 0000000..c606ebe
--- /dev/null
+++ b/Assets/UI Toolkit/Document/Document.uss
@@ -0,0 +1,14 @@
+.document-page {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ display: flex;
+ opacity: 1;
+}
+
+.document-page-hide {
+ display: none;
+ opacity: 0;
+}
diff --git a/Assets/UI Toolkit/Document/Document.uss.meta b/Assets/UI Toolkit/Document/Document.uss.meta
new file mode 100644
index 0000000..f73e1a9
--- /dev/null
+++ b/Assets/UI Toolkit/Document/Document.uss.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9205939af30a4394f8f2e34232b27890
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
+ disableValidation: 0
diff --git a/Assets/UI Toolkit/Document/TestDocument.uxml b/Assets/UI Toolkit/Document/TestDocument.uxml
new file mode 100644
index 0000000..0a8115a
--- /dev/null
+++ b/Assets/UI Toolkit/Document/TestDocument.uxml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Assets/UI Toolkit/Document/TestDocument.uxml.meta b/Assets/UI Toolkit/Document/TestDocument.uxml.meta
new file mode 100644
index 0000000..f38a2da
--- /dev/null
+++ b/Assets/UI Toolkit/Document/TestDocument.uxml.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 31e24fa07355f6e42841c8f1d0e77e54
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/Assets/UI Toolkit/Theme/UnityDefaultRuntimeTheme.tss b/Assets/UI Toolkit/Theme/UnityDefaultRuntimeTheme.tss
index d6c09c5..b2d1a51 100644
--- a/Assets/UI Toolkit/Theme/UnityDefaultRuntimeTheme.tss
+++ b/Assets/UI Toolkit/Theme/UnityDefaultRuntimeTheme.tss
@@ -1,10 +1,12 @@
@import url("unity-theme://default");
@import url("/Assets/UI Toolkit/FontLibrary/Fonts.uss");
+@import url("/Assets/UI Toolkit/Component/Dropdown/Dropdown.uss");
@import url("/Assets/UI Toolkit/Component/InputField/InputField.uss");
@import url("/Assets/UI Toolkit/Component/Scroller/Scroller.uss");
@import url("/Assets/UI Toolkit/Component/ScrollView/ScrollView.uss");
@import url("/Assets/UI Toolkit/Component/Slider/Slider.uss");
+@import url("/Assets/UI Toolkit/Component/Toggle/Toggle.uss");
@import url("/Assets/UI Toolkit/Component/Window/Window.uss");
@@ -21,4 +23,7 @@
+
+
+
VisualElement {}
diff --git a/Packages/UITool/Runtime/ModuleUIPanel/UIDropdown.cs b/Packages/UITool/Runtime/ModuleUIPanel/UIDropdown.cs
new file mode 100644
index 0000000..a817e20
--- /dev/null
+++ b/Packages/UITool/Runtime/ModuleUIPanel/UIDropdown.cs
@@ -0,0 +1,124 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace MuHua {
+ ///
+ /// 下拉框
+ ///
+ public class UIDropdown : ModuleUIPanel {
+ /// 绑定的画布
+ internal readonly VisualElement canvas;
+ /// 下拉框容器
+ internal readonly VisualElement DropdownContainer;
+ /// 下拉框滚动视图
+ internal readonly VisualElement DropdownScrollView;
+ /// 选项模板
+ internal readonly VisualTreeAsset TemplateAsset;
+ /// 值改变时
+ public event Action ValueChanged;
+
+ public T value;
+ public List list = new List();
+
+ internal UIScrollView scrollView;
+ internal ModuleUIItems DropdownItems;
+
+ /// 数据操作 list[index];
+ /// 总数 list.Count;
+
+ internal Label Tag => Q