1
This commit is contained in:
@@ -8,24 +8,50 @@ using MuHua;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// UI模块
|
/// UI模块
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ModuleUI : ModuleSingle<ModuleUI> {
|
public class ModuleUI : ModuleUISingle<ModuleUI> {
|
||||||
public static EnumPage page;
|
/// <summary> 当前页面 </summary>
|
||||||
public static event Action<EnumPage> OnJumpPage;
|
public static Page Current;
|
||||||
|
/// <summary> 回退页面 </summary>
|
||||||
|
public static Page BackPage;
|
||||||
|
/// <summary> 控件列表 </summary>
|
||||||
|
public static List<UIControl> controls = new List<UIControl>();
|
||||||
|
/// <summary> 页面跳转事件 </summary>
|
||||||
|
public static event Action<Page> OnJumpPage;
|
||||||
|
|
||||||
public UIDocument document;// 绑定文档
|
/// <summary> 跳转页面 </summary>
|
||||||
|
public static void Settings(Page pageType) {
|
||||||
|
BackPage = Current;
|
||||||
|
Current = pageType;
|
||||||
|
OnJumpPage?.Invoke(Current);
|
||||||
|
}
|
||||||
|
/// <summary> 回退页面 </summary>
|
||||||
|
public static void Back() {
|
||||||
|
Current = BackPage;
|
||||||
|
OnJumpPage?.Invoke(Current);
|
||||||
|
}
|
||||||
|
/// <summary> 添加控件 </summary>
|
||||||
|
public static void AddControl(UIControl control) {
|
||||||
|
controls.Add(control);
|
||||||
|
}
|
||||||
|
/// <summary> 移除控件 </summary>
|
||||||
|
public static void RemoveControl(UIControl control) {
|
||||||
|
controls.Remove(control);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary> 根目录文档 </summary>
|
public override VisualElement Element => document.rootVisualElement;
|
||||||
public VisualElement root => document.rootVisualElement;
|
|
||||||
|
|
||||||
protected override void Awake() => NoReplace();
|
protected override void Awake() => NoReplace();
|
||||||
|
|
||||||
/// <summary> 跳转页面 </summary>
|
private void Update() => controls.ForEach(control => control.Update());
|
||||||
public static void Settings(EnumPage pageType) => OnJumpPage?.Invoke(pageType);
|
|
||||||
|
private void OnDestroy() => controls.ForEach(control => control.Dispose());
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 页面
|
/// 页面
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public enum EnumPage {
|
public enum Page {
|
||||||
|
/// <summary> 无 </summary>
|
||||||
None,
|
None,
|
||||||
|
/// <summary> 登录 </summary>
|
||||||
Login,
|
Login,
|
||||||
}
|
}
|
||||||
@@ -25,9 +25,9 @@ public class UILoginPage : ModuleUIPage {
|
|||||||
ModuleUI.OnJumpPage += ModuleUI_OnJumpPage;
|
ModuleUI.OnJumpPage += ModuleUI_OnJumpPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ModuleUI_OnJumpPage(EnumPage page) {
|
private void ModuleUI_OnJumpPage(Page page) {
|
||||||
Element.EnableInClassList("document-page-hide", page != EnumPage.Login);
|
Element.EnableInClassList("document-page-hide", page != Page.Login);
|
||||||
if (page != EnumPage.Login) { return; }
|
if (page != Page.Login) { return; }
|
||||||
OpenLoginPanel();
|
OpenLoginPanel();
|
||||||
}
|
}
|
||||||
public void OpenLoginPanel() {
|
public void OpenLoginPanel() {
|
||||||
@@ -58,7 +58,7 @@ public class UILoginPanel : ModuleUIPanel {
|
|||||||
InputField2.RegisterCallback<ChangeEvent<string>>(evt => { password = evt.newValue; });
|
InputField2.RegisterCallback<ChangeEvent<string>>(evt => { password = evt.newValue; });
|
||||||
Button1.clicked += () => parent.OpenRegisterPanel();
|
Button1.clicked += () => parent.OpenRegisterPanel();
|
||||||
Button2.clicked += () => ManagerRequest.I.Login(username, password, (s) => {
|
Button2.clicked += () => ManagerRequest.I.Login(username, password, (s) => {
|
||||||
ModuleUI.Settings(EnumPage.None);
|
ModuleUI.Settings(Page.None);
|
||||||
Debug.Log(s);
|
Debug.Log(s);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,25 +7,11 @@ using MuHua;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// UI弹出管理器
|
/// UI弹出管理器
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIPopupManager : ModuleUIPage {
|
public class UIPopupManager : ModuleUISingle<UIPopupManager> {
|
||||||
|
|
||||||
// public UIPopup dialog;
|
|
||||||
|
|
||||||
public override VisualElement Element => root.Q<VisualElement>("Popup");
|
public override VisualElement Element => root.Q<VisualElement>("Popup");
|
||||||
|
|
||||||
public VisualElement PopupDialog => Q<VisualElement>("PopupDialog");
|
public VisualElement PopupDialog => Q<VisualElement>("PopupDialog");
|
||||||
|
|
||||||
private void Awake() {
|
protected override void Awake() => NoReplace(false);
|
||||||
// dialog = new UIPopup(PopupDialog);
|
|
||||||
}
|
|
||||||
private void OnDestroy() {
|
|
||||||
// config.Release();
|
|
||||||
// configMaterial.Release();
|
|
||||||
// equipmentSelection.Release();
|
|
||||||
// paramrInput.Release();
|
|
||||||
}
|
|
||||||
private void Update() {
|
|
||||||
// config.Update();
|
|
||||||
// configMaterial.Update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,13 +132,14 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 670296964}
|
- component: {fileID: 670296964}
|
||||||
- component: {fileID: 670296963}
|
- component: {fileID: 670296963}
|
||||||
|
- component: {fileID: 670296965}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: "----\u754C\u9762\u6587\u6863----"
|
m_Name: "----\u754C\u9762\u6587\u6863----"
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!114 &670296963
|
--- !u!114 &670296963
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -171,6 +172,19 @@ Transform:
|
|||||||
- {fileID: 1621578791}
|
- {fileID: 1621578791}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &670296965
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 670296962}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ea89ac05041b5d74582ee9d0add233ac, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
document: {fileID: 670296963}
|
||||||
--- !u!1 &705507993
|
--- !u!1 &705507993
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UIElements;
|
||||||
|
|
||||||
|
namespace MuHua {
|
||||||
|
/// <summary>
|
||||||
|
/// 页面单例
|
||||||
|
/// </summary>
|
||||||
|
public abstract class ModuleUISingle<Single> : MonoBehaviour where Single : ModuleUISingle<Single> {
|
||||||
|
/// <summary> 模块单例 </summary>
|
||||||
|
public static Single I => instance;
|
||||||
|
/// <summary> 模块单例 </summary>
|
||||||
|
protected static Single instance;
|
||||||
|
/// <summary> 初始化 </summary>
|
||||||
|
protected abstract void Awake();
|
||||||
|
|
||||||
|
/// <summary> 绑定文档 </summary>
|
||||||
|
public UIDocument document;
|
||||||
|
/// <summary> 根目录文档 </summary>
|
||||||
|
public VisualElement root => document.rootVisualElement;
|
||||||
|
/// <summary> 绑定文档 </summary>
|
||||||
|
public abstract VisualElement Element { get; }
|
||||||
|
/// <summary> 添加UI元素 </summary>
|
||||||
|
public void Add(VisualElement child) => Element.Add(child);
|
||||||
|
/// <summary> 查询UI元素 </summary>
|
||||||
|
public T Q<T>(string name = null, string className = null) where T : VisualElement => Element.Q<T>(name, className);
|
||||||
|
|
||||||
|
/// <summary> 替换,并且设置切换场景不销毁 </summary>
|
||||||
|
protected virtual void Replace(bool isDontDestroy = true) {
|
||||||
|
if (instance != null) { Destroy(instance.gameObject); }
|
||||||
|
instance = (Single)this;
|
||||||
|
if (isDontDestroy) { DontDestroyOnLoad(gameObject); }
|
||||||
|
}
|
||||||
|
/// <summary> 不替换,并且设置切换场景不销毁 </summary>
|
||||||
|
protected virtual void NoReplace(bool isDontDestroy = true) {
|
||||||
|
if (isDontDestroy) { DontDestroyOnLoad(gameObject); }
|
||||||
|
if (instance == null) { instance = (Single)this; }
|
||||||
|
else { Destroy(gameObject); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c2b0340184fec6c45815d13d6a1f7321
|
guid: 6a88fdbff78494947b294cfa1754abb4
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -9,5 +9,7 @@ namespace MuHua {
|
|||||||
public interface UIControl {
|
public interface UIControl {
|
||||||
/// <summary> 更新UI状态 </summary>
|
/// <summary> 更新UI状态 </summary>
|
||||||
public void Update();
|
public void Update();
|
||||||
|
/// <summary> 解除UI绑定 </summary>
|
||||||
|
public void Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace MuHua {
|
|
||||||
/// <summary>
|
|
||||||
/// 方向
|
|
||||||
/// </summary>
|
|
||||||
[Obsolete("使用类内置的 UIDirection")]
|
|
||||||
public enum UIDirection {
|
|
||||||
FromLeftToRight = 0,
|
|
||||||
FromRightToLeft = 1,
|
|
||||||
FromTopToBottom = 2,
|
|
||||||
FromBottomToTop = 3,
|
|
||||||
|
|
||||||
HorizontalAndVertical = 4,
|
|
||||||
Horizontal = 5,
|
|
||||||
Vertical = 6,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 下拉框
|
/// 下拉框
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIDropdown<T> : ModuleUIPanel, IDisposable, UIControl {
|
public class UIDropdown<T> : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
internal readonly VisualElement canvas;
|
internal readonly VisualElement canvas;
|
||||||
/// <summary> 下拉框容器 </summary>
|
/// <summary> 下拉框容器 </summary>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滚动视图
|
/// 滚动视图
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIScrollView : ModuleUIPanel, IDisposable, UIControl {
|
public class UIScrollView : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 水平滑块 </summary>
|
/// <summary> 水平滑块 </summary>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滚动视图 - 水平
|
/// 滚动视图 - 水平
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIScrollViewH : ModuleUIPanel, IDisposable, UIControl {
|
public class UIScrollViewH : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 元素方向 </summary>
|
/// <summary> 元素方向 </summary>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滚动视图 - 垂直
|
/// 滚动视图 - 垂直
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIScrollViewV : ModuleUIPanel, IDisposable, UIControl {
|
public class UIScrollViewV : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 元素方向 </summary>
|
/// <summary> 元素方向 </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滚动条 - 水平
|
/// 滚动条 - 水平
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIScrollerH : ModuleUIPanel, IDisposable, UIControl {
|
public class UIScrollerH : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 元素方向 </summary>
|
/// <summary> 元素方向 </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滚动条 - 垂直
|
/// 滚动条 - 垂直
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UIScrollerV : ModuleUIPanel, IDisposable, UIControl {
|
public class UIScrollerV : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 元素方向 </summary>
|
/// <summary> 元素方向 </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滑块 - 水平
|
/// 滑块 - 水平
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UISliderH : ModuleUIPanel, IDisposable, UIControl {
|
public class UISliderH : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 元素方向 </summary>
|
/// <summary> 元素方向 </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 滑块 - 垂直
|
/// 滑块 - 垂直
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class UISliderV : ModuleUIPanel, IDisposable, UIControl {
|
public class UISliderV : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 元素方向 </summary>
|
/// <summary> 元素方向 </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace MuHua {
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 悬浮窗口
|
/// 悬浮窗口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class UIWindow : ModuleUIPanel, IDisposable, UIControl {
|
public abstract class UIWindow : ModuleUIPanel, UIControl {
|
||||||
/// <summary> 绑定的画布 </summary>
|
/// <summary> 绑定的画布 </summary>
|
||||||
public readonly VisualElement canvas;
|
public readonly VisualElement canvas;
|
||||||
/// <summary> 隐藏的USS类名 </summary>
|
/// <summary> 隐藏的USS类名 </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user