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 @@ + + +