forked from sin365/AxibugEmuOnline
重构UI菜单继承结构
This commit is contained in:
parent
d2f48a56e7
commit
7d7b864c1b
@ -1,5 +1,101 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &782102846085628909
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 6503369113137645357}
|
||||||
|
- component: {fileID: 6442047476311195174}
|
||||||
|
- component: {fileID: 394891843266770919}
|
||||||
|
- component: {fileID: 5658511545186035791}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Icon
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &6503369113137645357
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 782102846085628909}
|
||||||
|
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_Children: []
|
||||||
|
m_Father: {fileID: 2780569438310375802}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
|
m_AnchoredPosition: {x: 25, y: -25}
|
||||||
|
m_SizeDelta: {x: 40, y: 40}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &6442047476311195174
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 782102846085628909}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &394891843266770919
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 782102846085628909}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
|
--- !u!114 &5658511545186035791
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 782102846085628909}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_IgnoreLayout: 0
|
||||||
|
m_MinWidth: -1
|
||||||
|
m_MinHeight: -1
|
||||||
|
m_PreferredWidth: 40
|
||||||
|
m_PreferredHeight: 40
|
||||||
|
m_FlexibleWidth: -1
|
||||||
|
m_FlexibleHeight: -1
|
||||||
|
m_LayoutPriority: 1
|
||||||
--- !u!1 &793983410033291345
|
--- !u!1 &793983410033291345
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -106,13 +202,14 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 2780569438310375802}
|
- component: {fileID: 2780569438310375802}
|
||||||
- component: {fileID: 9142037267599823005}
|
- component: {fileID: 9142037267599823005}
|
||||||
|
- component: {fileID: 3721725547312714320}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: ExecuteItem_Template
|
m_Name: ExecuteItem_Template
|
||||||
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!224 &2780569438310375802
|
--- !u!224 &2780569438310375802
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -124,14 +221,15 @@ RectTransform:
|
|||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
|
- {fileID: 6503369113137645357}
|
||||||
- {fileID: 1714682891259844147}
|
- {fileID: 1714682891259844147}
|
||||||
m_Father: {fileID: 5397686940312333149}
|
m_Father: {fileID: 5397686940312333149}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 124.5, y: -540}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 209, y: 50}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &9142037267599823005
|
--- !u!114 &9142037267599823005
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
@ -146,12 +244,12 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Padding:
|
m_Padding:
|
||||||
m_Left: 0
|
m_Left: 5
|
||||||
m_Right: 0
|
m_Right: 5
|
||||||
m_Top: 0
|
m_Top: 5
|
||||||
m_Bottom: 0
|
m_Bottom: 5
|
||||||
m_ChildAlignment: 4
|
m_ChildAlignment: 4
|
||||||
m_Spacing: 0
|
m_Spacing: 12
|
||||||
m_ChildForceExpandWidth: 0
|
m_ChildForceExpandWidth: 0
|
||||||
m_ChildForceExpandHeight: 0
|
m_ChildForceExpandHeight: 0
|
||||||
m_ChildControlWidth: 1
|
m_ChildControlWidth: 1
|
||||||
@ -159,6 +257,20 @@ MonoBehaviour:
|
|||||||
m_ChildScaleWidth: 0
|
m_ChildScaleWidth: 0
|
||||||
m_ChildScaleHeight: 0
|
m_ChildScaleHeight: 0
|
||||||
m_ReverseArrangement: 0
|
m_ReverseArrangement: 0
|
||||||
|
--- !u!114 &3721725547312714320
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2500436782395572584}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: eb6aef4a36f116c42a45843286be880c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_MenuNameTxt: {fileID: 1824253632728291860}
|
||||||
|
m_Icon: {fileID: 394891843266770919}
|
||||||
--- !u!1 &3968697266383191021
|
--- !u!1 &3968697266383191021
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -211,12 +323,12 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_Padding:
|
m_Padding:
|
||||||
m_Left: 10
|
m_Left: 20
|
||||||
m_Right: 10
|
m_Right: 20
|
||||||
m_Top: 10
|
m_Top: 0
|
||||||
m_Bottom: 10
|
m_Bottom: 0
|
||||||
m_ChildAlignment: 4
|
m_ChildAlignment: 4
|
||||||
m_Spacing: 0
|
m_Spacing: 12
|
||||||
m_ChildForceExpandWidth: 0
|
m_ChildForceExpandWidth: 0
|
||||||
m_ChildForceExpandHeight: 0
|
m_ChildForceExpandHeight: 0
|
||||||
m_ChildControlWidth: 1
|
m_ChildControlWidth: 1
|
||||||
@ -288,6 +400,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
MenuRoot: {fileID: 5397686940312333149}
|
MenuRoot: {fileID: 5397686940312333149}
|
||||||
|
TEMPLATE_EXECUTEITEM: {fileID: 3721725547312714320}
|
||||||
--- !u!1 &6998597834321643812
|
--- !u!1 &6998597834321643812
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -318,12 +431,12 @@ RectTransform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 2780569438310375802}
|
m_Father: {fileID: 2780569438310375802}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 130.5, y: -25}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 147, y: 30}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &6532365540230118336
|
--- !u!222 &6532365540230118336
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
@ -355,7 +468,7 @@ MonoBehaviour:
|
|||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_FontData:
|
m_FontData:
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
m_FontSize: 18
|
m_FontSize: 26
|
||||||
m_FontStyle: 0
|
m_FontStyle: 0
|
||||||
m_BestFit: 0
|
m_BestFit: 0
|
||||||
m_MinSize: 1
|
m_MinSize: 1
|
||||||
|
@ -1482,5 +1482,9 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5397686940312333149, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
using AxibugEmuOnline.Client.UI;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -7,29 +9,29 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
public static CommandDispatcher Instance { get; private set; }
|
public static CommandDispatcher Instance { get; private set; }
|
||||||
|
|
||||||
List<MenuItemController> m_register = new List<MenuItemController>();
|
List<CommandExecuter> m_register = new List<CommandExecuter>();
|
||||||
Dictionary<KeyCode, MenuItemController.EnumCommand> m_keyMapper = new Dictionary<KeyCode, MenuItemController.EnumCommand>();
|
Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
Instance = this;
|
Instance = this;
|
||||||
|
|
||||||
m_keyMapper.Add(KeyCode.A, MenuItemController.EnumCommand.SelectItemLeft);
|
m_keyMapper.Add(KeyCode.A, EnumCommand.SelectItemLeft);
|
||||||
m_keyMapper.Add(KeyCode.D, MenuItemController.EnumCommand.SelectItemRight);
|
m_keyMapper.Add(KeyCode.D, EnumCommand.SelectItemRight);
|
||||||
m_keyMapper.Add(KeyCode.W, MenuItemController.EnumCommand.SelectItemUp);
|
m_keyMapper.Add(KeyCode.W, EnumCommand.SelectItemUp);
|
||||||
m_keyMapper.Add(KeyCode.S, MenuItemController.EnumCommand.SelectItemDown);
|
m_keyMapper.Add(KeyCode.S, EnumCommand.SelectItemDown);
|
||||||
m_keyMapper.Add(KeyCode.K, MenuItemController.EnumCommand.Enter);
|
m_keyMapper.Add(KeyCode.K, EnumCommand.Enter);
|
||||||
m_keyMapper.Add(KeyCode.L, MenuItemController.EnumCommand.Back);
|
m_keyMapper.Add(KeyCode.L, EnumCommand.Back);
|
||||||
m_keyMapper.Add(KeyCode.I, MenuItemController.EnumCommand.OptionMenu);
|
m_keyMapper.Add(KeyCode.I, EnumCommand.OptionMenu);
|
||||||
|
|
||||||
m_keyMapper.Add(KeyCode.LeftArrow, MenuItemController.EnumCommand.SelectItemLeft);
|
m_keyMapper.Add(KeyCode.LeftArrow, EnumCommand.SelectItemLeft);
|
||||||
m_keyMapper.Add(KeyCode.RightArrow, MenuItemController.EnumCommand.SelectItemRight);
|
m_keyMapper.Add(KeyCode.RightArrow, EnumCommand.SelectItemRight);
|
||||||
m_keyMapper.Add(KeyCode.UpArrow, MenuItemController.EnumCommand.SelectItemUp);
|
m_keyMapper.Add(KeyCode.UpArrow, EnumCommand.SelectItemUp);
|
||||||
m_keyMapper.Add(KeyCode.DownArrow, MenuItemController.EnumCommand.SelectItemDown);
|
m_keyMapper.Add(KeyCode.DownArrow, EnumCommand.SelectItemDown);
|
||||||
m_keyMapper.Add(KeyCode.Return, MenuItemController.EnumCommand.Enter);
|
m_keyMapper.Add(KeyCode.Return, EnumCommand.Enter);
|
||||||
m_keyMapper.Add(KeyCode.Escape, MenuItemController.EnumCommand.Back);
|
m_keyMapper.Add(KeyCode.Escape, EnumCommand.Back);
|
||||||
m_keyMapper.Add(KeyCode.RightShift, MenuItemController.EnumCommand.OptionMenu);
|
m_keyMapper.Add(KeyCode.RightShift, EnumCommand.OptionMenu);
|
||||||
m_keyMapper.Add(KeyCode.LeftShift, MenuItemController.EnumCommand.OptionMenu);
|
m_keyMapper.Add(KeyCode.LeftShift, EnumCommand.OptionMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@ -37,19 +39,19 @@ namespace AxibugEmuOnline.Client
|
|||||||
Instance = null;
|
Instance = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegistController(MenuItemController controller)
|
public void RegistController(CommandExecuter controller)
|
||||||
{
|
{
|
||||||
if (m_register.Contains(controller)) { return; }
|
if (m_register.Contains(controller)) { return; }
|
||||||
|
|
||||||
m_register.Add(controller);
|
m_register.Add(controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UnRegistController(MenuItemController menuItemController)
|
public void UnRegistController(CommandExecuter menuItemController)
|
||||||
{
|
{
|
||||||
m_register.Remove(menuItemController);
|
m_register.Remove(menuItemController);
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly List<MenuItemController> oneFrameRegister = new List<MenuItemController>();
|
readonly List<CommandExecuter> oneFrameRegister = new List<CommandExecuter>();
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
foreach (var item in m_keyMapper)
|
foreach (var item in m_keyMapper)
|
||||||
@ -62,7 +64,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
for (int i = 0; i < oneFrameRegister.Count; i++)
|
for (int i = 0; i < oneFrameRegister.Count; i++)
|
||||||
{
|
{
|
||||||
var controller = oneFrameRegister[i];
|
var controller = oneFrameRegister[i];
|
||||||
if (!controller.enabled) continue;
|
if (!controller.Enable) continue;
|
||||||
controller.ExecuteCommand(item.Value, false);
|
controller.ExecuteCommand(item.Value, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,11 +76,122 @@ namespace AxibugEmuOnline.Client
|
|||||||
for (int i = 0; i < oneFrameRegister.Count; i++)
|
for (int i = 0; i < oneFrameRegister.Count; i++)
|
||||||
{
|
{
|
||||||
var controller = oneFrameRegister[i];
|
var controller = oneFrameRegister[i];
|
||||||
if (!controller.enabled) continue;
|
if (!controller.Enable) continue;
|
||||||
controller.ExecuteCommand(item.Value, true);
|
controller.ExecuteCommand(item.Value, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract class CommandExecuter : MonoBehaviour
|
||||||
|
{
|
||||||
|
private PulseInvoker m_pulsInvoker_Left;
|
||||||
|
private PulseInvoker m_pulsInvoker_Right;
|
||||||
|
private PulseInvoker m_pulsInvoker_Up;
|
||||||
|
private PulseInvoker m_pulsInvoker_Down;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
float PulseInvoke_Delay = 0.4f;
|
||||||
|
[SerializeField]
|
||||||
|
float PulseInvoke_Interval = 0.05f;
|
||||||
|
|
||||||
|
public abstract bool Enable { get; }
|
||||||
|
|
||||||
|
protected virtual void Awake()
|
||||||
|
{
|
||||||
|
m_pulsInvoker_Left = new PulseInvoker(OnCmdSelectItemLeft, PulseInvoke_Delay, PulseInvoke_Interval);
|
||||||
|
m_pulsInvoker_Right = new PulseInvoker(OnCmdSelectItemRight, PulseInvoke_Delay, PulseInvoke_Interval);
|
||||||
|
m_pulsInvoker_Up = new PulseInvoker(OnCmdSelectItemUp, PulseInvoke_Delay, PulseInvoke_Interval);
|
||||||
|
m_pulsInvoker_Down = new PulseInvoker(OnCmdSelectItemDown, PulseInvoke_Delay, PulseInvoke_Interval);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void Update()
|
||||||
|
{
|
||||||
|
m_pulsInvoker_Left.Update(Time.deltaTime);
|
||||||
|
m_pulsInvoker_Right.Update(Time.deltaTime);
|
||||||
|
m_pulsInvoker_Up.Update(Time.deltaTime);
|
||||||
|
m_pulsInvoker_Down.Update(Time.deltaTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ExecuteCommand(EnumCommand cmd, bool cancel)
|
||||||
|
{
|
||||||
|
if (!cancel)
|
||||||
|
{
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case EnumCommand.SelectItemLeft:
|
||||||
|
m_pulsInvoker_Left.SetActive();
|
||||||
|
OnCmdSelectItemLeft();
|
||||||
|
break;
|
||||||
|
case EnumCommand.SelectItemRight:
|
||||||
|
m_pulsInvoker_Right.SetActive();
|
||||||
|
OnCmdSelectItemRight();
|
||||||
|
break;
|
||||||
|
case EnumCommand.SelectItemUp:
|
||||||
|
m_pulsInvoker_Up.SetActive();
|
||||||
|
OnCmdSelectItemUp();
|
||||||
|
break;
|
||||||
|
case EnumCommand.SelectItemDown:
|
||||||
|
m_pulsInvoker_Down.SetActive();
|
||||||
|
OnCmdSelectItemDown();
|
||||||
|
break;
|
||||||
|
case EnumCommand.Enter:
|
||||||
|
if (OnCmdEnter())
|
||||||
|
{
|
||||||
|
m_pulsInvoker_Left.DisActive();
|
||||||
|
m_pulsInvoker_Right.DisActive();
|
||||||
|
m_pulsInvoker_Up.DisActive();
|
||||||
|
m_pulsInvoker_Down.DisActive();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case EnumCommand.Back:
|
||||||
|
OnCmdBack();
|
||||||
|
break;
|
||||||
|
case EnumCommand.OptionMenu:
|
||||||
|
OnCmdOptionMenu();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case EnumCommand.SelectItemLeft:
|
||||||
|
m_pulsInvoker_Left.DisActive(); break;
|
||||||
|
case EnumCommand.SelectItemRight:
|
||||||
|
m_pulsInvoker_Right.DisActive(); break;
|
||||||
|
case EnumCommand.SelectItemUp:
|
||||||
|
m_pulsInvoker_Up.DisActive(); break;
|
||||||
|
case EnumCommand.SelectItemDown:
|
||||||
|
m_pulsInvoker_Down.DisActive(); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnCmdSelectItemLeft() { }
|
||||||
|
|
||||||
|
protected virtual void OnCmdSelectItemRight() { }
|
||||||
|
|
||||||
|
protected virtual void OnCmdSelectItemUp() { }
|
||||||
|
|
||||||
|
protected virtual void OnCmdSelectItemDown() { }
|
||||||
|
|
||||||
|
protected virtual void OnCmdOptionMenu() { }
|
||||||
|
protected virtual bool OnCmdEnter() => false;
|
||||||
|
protected virtual void OnCmdBack() { }
|
||||||
|
protected abstract void OnSelectMenuChanged();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum EnumCommand
|
||||||
|
{
|
||||||
|
SelectItemLeft,
|
||||||
|
SelectItemRight,
|
||||||
|
SelectItemUp,
|
||||||
|
SelectItemDown,
|
||||||
|
Enter,
|
||||||
|
Back,
|
||||||
|
OptionMenu
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,35 +4,15 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public abstract class MenuItemController : MonoBehaviour
|
public abstract class MenuItemController : CommandExecuter
|
||||||
{
|
{
|
||||||
public enum EnumCommand
|
|
||||||
{
|
|
||||||
SelectItemLeft,
|
|
||||||
SelectItemRight,
|
|
||||||
SelectItemUp,
|
|
||||||
SelectItemDown,
|
|
||||||
Enter,
|
|
||||||
Back,
|
|
||||||
OptionMenu
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
protected Transform m_menuItemRoot;
|
protected Transform m_menuItemRoot;
|
||||||
protected List<MenuItem> m_runtimeMenuUI = new List<MenuItem>();
|
protected List<MenuItem> m_runtimeMenuUI = new List<MenuItem>();
|
||||||
|
public override bool Enable => enabled;
|
||||||
|
|
||||||
private PulseInvoker m_pulsInvoker_Left;
|
|
||||||
private PulseInvoker m_pulsInvoker_Right;
|
|
||||||
private PulseInvoker m_pulsInvoker_Up;
|
|
||||||
private PulseInvoker m_pulsInvoker_Down;
|
|
||||||
private MenuItem m_enteredItem = null;
|
private MenuItem m_enteredItem = null;
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
float PulseInvoke_Delay = 0.4f;
|
|
||||||
[SerializeField]
|
|
||||||
float PulseInvoke_Interval = 0.05f;
|
|
||||||
|
|
||||||
protected int m_selectIndex = -1;
|
protected int m_selectIndex = -1;
|
||||||
|
|
||||||
public virtual int SelectIndex
|
public virtual int SelectIndex
|
||||||
@ -61,87 +41,6 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
Canvas.ForceUpdateCanvases();
|
Canvas.ForceUpdateCanvases();
|
||||||
SelectIndex = 0;
|
SelectIndex = 0;
|
||||||
|
|
||||||
m_pulsInvoker_Left = new PulseInvoker(OnCmdSelectItemLeft, PulseInvoke_Delay, PulseInvoke_Interval);
|
|
||||||
m_pulsInvoker_Right = new PulseInvoker(OnCmdSelectItemRight, PulseInvoke_Delay, PulseInvoke_Interval);
|
|
||||||
m_pulsInvoker_Up = new PulseInvoker(OnCmdSelectItemUp, PulseInvoke_Delay, PulseInvoke_Interval);
|
|
||||||
m_pulsInvoker_Down = new PulseInvoker(OnCmdSelectItemDown, PulseInvoke_Delay, PulseInvoke_Interval);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected virtual void Update()
|
|
||||||
{
|
|
||||||
m_pulsInvoker_Left.Update(Time.deltaTime);
|
|
||||||
m_pulsInvoker_Right.Update(Time.deltaTime);
|
|
||||||
m_pulsInvoker_Up.Update(Time.deltaTime);
|
|
||||||
m_pulsInvoker_Down.Update(Time.deltaTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ExecuteCommand(EnumCommand cmd, bool cancel)
|
|
||||||
{
|
|
||||||
if (!cancel)
|
|
||||||
{
|
|
||||||
switch (cmd)
|
|
||||||
{
|
|
||||||
case EnumCommand.SelectItemLeft:
|
|
||||||
m_pulsInvoker_Left.SetActive();
|
|
||||||
OnCmdSelectItemLeft();
|
|
||||||
break;
|
|
||||||
case EnumCommand.SelectItemRight:
|
|
||||||
m_pulsInvoker_Right.SetActive();
|
|
||||||
OnCmdSelectItemRight();
|
|
||||||
break;
|
|
||||||
case EnumCommand.SelectItemUp:
|
|
||||||
m_pulsInvoker_Up.SetActive();
|
|
||||||
OnCmdSelectItemUp();
|
|
||||||
break;
|
|
||||||
case EnumCommand.SelectItemDown:
|
|
||||||
m_pulsInvoker_Down.SetActive();
|
|
||||||
OnCmdSelectItemDown();
|
|
||||||
break;
|
|
||||||
case EnumCommand.Enter:
|
|
||||||
if (m_enteredItem == null)
|
|
||||||
{
|
|
||||||
var willEnterItem = GetItemUIByIndex(SelectIndex);
|
|
||||||
bool res = OnCmdEnter(willEnterItem);
|
|
||||||
if (res)
|
|
||||||
{
|
|
||||||
m_enteredItem = willEnterItem;
|
|
||||||
|
|
||||||
m_pulsInvoker_Left.DisActive();
|
|
||||||
m_pulsInvoker_Right.DisActive();
|
|
||||||
m_pulsInvoker_Up.DisActive();
|
|
||||||
m_pulsInvoker_Down.DisActive();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case EnumCommand.Back:
|
|
||||||
if (m_enteredItem != null)
|
|
||||||
{
|
|
||||||
OnCmdBack(m_enteredItem);
|
|
||||||
m_enteredItem = null;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case EnumCommand.OptionMenu:
|
|
||||||
OnCmdOptionMenu();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
switch (cmd)
|
|
||||||
{
|
|
||||||
case EnumCommand.SelectItemLeft:
|
|
||||||
m_pulsInvoker_Left.DisActive(); break;
|
|
||||||
case EnumCommand.SelectItemRight:
|
|
||||||
m_pulsInvoker_Right.DisActive(); break;
|
|
||||||
case EnumCommand.SelectItemUp:
|
|
||||||
m_pulsInvoker_Up.DisActive(); break;
|
|
||||||
case EnumCommand.SelectItemDown:
|
|
||||||
m_pulsInvoker_Down.DisActive(); break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual MenuItem GetItemUIByIndex(int index)
|
protected virtual MenuItem GetItemUIByIndex(int index)
|
||||||
@ -149,19 +48,30 @@ namespace AxibugEmuOnline.Client
|
|||||||
return m_runtimeMenuUI[SelectIndex];
|
return m_runtimeMenuUI[SelectIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void OnCmdSelectItemLeft() { }
|
protected override bool OnCmdEnter()
|
||||||
|
{
|
||||||
|
if (m_enteredItem == null)
|
||||||
|
{
|
||||||
|
var willEnterItem = GetItemUIByIndex(SelectIndex);
|
||||||
|
bool res = willEnterItem.OnEnterItem();
|
||||||
|
if (res)
|
||||||
|
{
|
||||||
|
m_enteredItem = willEnterItem;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
protected virtual void OnCmdSelectItemRight() { }
|
return false;
|
||||||
|
}
|
||||||
protected virtual void OnCmdSelectItemUp() { }
|
|
||||||
|
|
||||||
protected virtual void OnCmdSelectItemDown() { }
|
|
||||||
|
|
||||||
protected virtual void OnCmdOptionMenu() { }
|
|
||||||
protected virtual bool OnCmdEnter(MenuItem item) => item.OnEnterItem();
|
|
||||||
protected virtual bool OnCmdBack(MenuItem item) => item.OnExitItem();
|
|
||||||
protected abstract void OnSelectMenuChanged();
|
|
||||||
|
|
||||||
|
protected override void OnCmdBack()
|
||||||
|
{
|
||||||
|
if (m_enteredItem != null)
|
||||||
|
{
|
||||||
|
m_enteredItem.OnExitItem();
|
||||||
|
m_enteredItem = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class MenuItemController<T> : MenuItemController
|
public abstract class MenuItemController<T> : MenuItemController
|
||||||
@ -189,10 +99,5 @@ namespace AxibugEmuOnline.Client
|
|||||||
if (CommandDispatcher.Instance != null)
|
if (CommandDispatcher.Instance != null)
|
||||||
CommandDispatcher.Instance.UnRegistController(this);
|
CommandDispatcher.Instance.UnRegistController(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,79 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client
|
|
||||||
{
|
|
||||||
public class OptionUI : MonoBehaviour
|
|
||||||
{
|
|
||||||
public static OptionUI Instance { get; private set; }
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
RectTransform MenuRoot;
|
|
||||||
|
|
||||||
private bool m_bPoped = false;
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
Instance = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
Canvas.ForceUpdateCanvases();
|
|
||||||
var width = MenuRoot.rect.size.x;
|
|
||||||
var temp = MenuRoot.anchoredPosition;
|
|
||||||
temp.x = -width;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Pop(IEnumerable<OptionMenu> menus)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Hide()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class OptionMenu
|
|
||||||
{
|
|
||||||
public string Name { get; protected set; }
|
|
||||||
|
|
||||||
public OptionMenu(string name)
|
|
||||||
{
|
|
||||||
Name = name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class ExecuteMenu : OptionMenu
|
|
||||||
{
|
|
||||||
protected ExecuteMenu(string name) : base(name) { }
|
|
||||||
|
|
||||||
public abstract void OnExcute();
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class ValueSetMenu : OptionMenu
|
|
||||||
{
|
|
||||||
protected ValueSetMenu(string name) : base(name) { }
|
|
||||||
|
|
||||||
public abstract Type ValueType { get; }
|
|
||||||
public abstract object ValueRaw { get; }
|
|
||||||
public abstract void OnValueChanged(object newValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract class ValueSetMenu<T> : ValueSetMenu
|
|
||||||
{
|
|
||||||
public sealed override Type ValueType => typeof(T);
|
|
||||||
|
|
||||||
public T Value { get; private set; }
|
|
||||||
|
|
||||||
public sealed override object ValueRaw => Value;
|
|
||||||
|
|
||||||
public sealed override void OnValueChanged(object newValue)
|
|
||||||
{
|
|
||||||
Value = (T)newValue;
|
|
||||||
}
|
|
||||||
protected ValueSetMenu(string name) : base(name) { }
|
|
||||||
}
|
|
||||||
}
|
|
8
AxibugEmuOnline.Client/Assets/Script/UI/OptionUI.meta
Normal file
8
AxibugEmuOnline.Client/Assets/Script/UI/OptionUI.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 65c17e13e38c7dd459e5c74ff9b37e87
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
166
AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
Normal file
166
AxibugEmuOnline.Client/Assets/Script/UI/OptionUI/OptionUI.cs
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
using DG.Tweening;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class OptionUI : CommandExecuter
|
||||||
|
{
|
||||||
|
public static OptionUI Instance { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
RectTransform MenuRoot;
|
||||||
|
|
||||||
|
[Space]
|
||||||
|
[Header("Ä£°å")]
|
||||||
|
[SerializeField] OptionUI_ExecuteItem TEMPLATE_EXECUTEITEM;
|
||||||
|
|
||||||
|
private bool m_bPoped = false;
|
||||||
|
private List<MonoBehaviour> m_runtimeMenuItems = new List<MonoBehaviour>();
|
||||||
|
|
||||||
|
protected override void Awake()
|
||||||
|
{
|
||||||
|
Instance = this;
|
||||||
|
TEMPLATE_EXECUTEITEM.gameObject.SetActiveEx(false);
|
||||||
|
|
||||||
|
base.Awake();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
Canvas.ForceUpdateCanvases();
|
||||||
|
var width = MenuRoot.rect.size.x;
|
||||||
|
var temp = MenuRoot.anchoredPosition;
|
||||||
|
temp.x = width;
|
||||||
|
MenuRoot.anchoredPosition = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Update()
|
||||||
|
{
|
||||||
|
if (Input.GetKeyDown(KeyCode.T))
|
||||||
|
{
|
||||||
|
if (m_bPoped) Hide();
|
||||||
|
else Pop(new List<OptionMenu>
|
||||||
|
{
|
||||||
|
new ExecuteMenu("²âÊԲ˵¥1"),
|
||||||
|
new ExecuteMenu("Copilot"),
|
||||||
|
new ExecuteMenu("ChatGPT 4o"),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Pop(IEnumerable<OptionMenu> menus)
|
||||||
|
{
|
||||||
|
ReleaseRuntimeMenus();
|
||||||
|
foreach (var menu in menus) CreateRuntimeMenuItem(menu);
|
||||||
|
CommandDispatcher.Instance.RegistController(this);
|
||||||
|
if (!m_bPoped)
|
||||||
|
{
|
||||||
|
m_bPoped = true;
|
||||||
|
DOTween.To(
|
||||||
|
() => MenuRoot.anchoredPosition.x,
|
||||||
|
(value) =>
|
||||||
|
{
|
||||||
|
var temp = MenuRoot.anchoredPosition;
|
||||||
|
temp.x = value;
|
||||||
|
MenuRoot.anchoredPosition = temp;
|
||||||
|
},
|
||||||
|
0,
|
||||||
|
0.3f
|
||||||
|
).SetEase(Ease.OutCubic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Hide()
|
||||||
|
{
|
||||||
|
if (m_bPoped)
|
||||||
|
{
|
||||||
|
m_bPoped = false;
|
||||||
|
Canvas.ForceUpdateCanvases();
|
||||||
|
var width = MenuRoot.rect.width;
|
||||||
|
DOTween.To(
|
||||||
|
() => MenuRoot.anchoredPosition.x,
|
||||||
|
(value) =>
|
||||||
|
{
|
||||||
|
var temp = MenuRoot.anchoredPosition;
|
||||||
|
temp.x = value;
|
||||||
|
MenuRoot.anchoredPosition = temp;
|
||||||
|
},
|
||||||
|
width,
|
||||||
|
0.3f
|
||||||
|
).SetEase(Ease.OutCubic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CreateRuntimeMenuItem(OptionMenu menuData)
|
||||||
|
{
|
||||||
|
if (menuData is ExecuteMenu executeMenu)
|
||||||
|
{
|
||||||
|
var menuUI = GameObject.Instantiate(TEMPLATE_EXECUTEITEM.gameObject, TEMPLATE_EXECUTEITEM.transform.parent).GetComponent<OptionUI_ExecuteItem>();
|
||||||
|
menuUI.gameObject.SetActive(true);
|
||||||
|
menuUI.SetData(executeMenu);
|
||||||
|
m_runtimeMenuItems.Add(menuUI);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ReleaseRuntimeMenus()
|
||||||
|
{
|
||||||
|
foreach (var item in m_runtimeMenuItems)
|
||||||
|
{
|
||||||
|
Destroy(item.gameObject);
|
||||||
|
}
|
||||||
|
m_runtimeMenuItems.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Enable => m_bPoped;
|
||||||
|
|
||||||
|
protected override void OnSelectMenuChanged()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class OptionMenu
|
||||||
|
{
|
||||||
|
public string Name { get; protected set; }
|
||||||
|
public Sprite Icon { get; protected set; }
|
||||||
|
public OptionMenu(string name, Sprite icon = null)
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
Icon = icon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ExecuteMenu : OptionMenu
|
||||||
|
{
|
||||||
|
public ExecuteMenu(string name, Sprite icon = null) : base(name, icon) { }
|
||||||
|
|
||||||
|
public virtual void OnExcute() { }
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract class ValueSetMenu : OptionMenu
|
||||||
|
{
|
||||||
|
public ValueSetMenu(string name) : base(name) { }
|
||||||
|
|
||||||
|
public abstract Type ValueType { get; }
|
||||||
|
public abstract object ValueRaw { get; }
|
||||||
|
public abstract void OnValueChanged(object newValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ValueSetMenu<T> : ValueSetMenu
|
||||||
|
{
|
||||||
|
public sealed override Type ValueType => typeof(T);
|
||||||
|
|
||||||
|
public T Value { get; private set; }
|
||||||
|
|
||||||
|
public sealed override object ValueRaw => Value;
|
||||||
|
|
||||||
|
public sealed override void OnValueChanged(object newValue)
|
||||||
|
{
|
||||||
|
Value = (T)newValue;
|
||||||
|
}
|
||||||
|
protected ValueSetMenu(string name) : base(name) { }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
public class OptionUI_ExecuteItem : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] Text m_MenuNameTxt;
|
||||||
|
[SerializeField] Image m_Icon;
|
||||||
|
|
||||||
|
public void SetData(ExecuteMenu executeMenu)
|
||||||
|
{
|
||||||
|
m_MenuNameTxt.text = executeMenu.Name;
|
||||||
|
if (executeMenu.Icon == null) m_Icon.gameObject.SetActiveEx(false);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_Icon.gameObject.SetActiveEx(true);
|
||||||
|
m_Icon.sprite = executeMenu.Icon;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eb6aef4a36f116c42a45843286be880c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -22,10 +22,12 @@ namespace AxibugEmuOnline.Client
|
|||||||
private TweenerCore<int, int, NoOptions> rollTween;
|
private TweenerCore<int, int, NoOptions> rollTween;
|
||||||
|
|
||||||
|
|
||||||
protected virtual void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
m_selected = false;
|
m_selected = false;
|
||||||
if (alphaGroup != null) alphaGroup.alpha = 0;
|
if (alphaGroup != null) alphaGroup.alpha = 0;
|
||||||
|
|
||||||
|
base.Awake();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Init(List<MenuData> menuDataList)
|
public override void Init(List<MenuData> menuDataList)
|
||||||
@ -62,22 +64,22 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnCmdEnter(MenuItem item)
|
protected override bool OnCmdEnter()
|
||||||
{
|
{
|
||||||
LaunchUI.Instance.ToDetailMenuLayout();
|
LaunchUI.Instance.ToDetailMenuLayout();
|
||||||
|
base.OnCmdEnter();
|
||||||
|
var item = GetItemUIByIndex(SelectIndex);
|
||||||
item.SetSelectState(false);
|
item.SetSelectState(false);
|
||||||
base.OnCmdEnter(item);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnCmdBack(MenuItem item)
|
protected override void OnCmdBack()
|
||||||
{
|
{
|
||||||
|
base.OnCmdBack();
|
||||||
LaunchUI.Instance.ToMainMenuLayout();
|
LaunchUI.Instance.ToMainMenuLayout();
|
||||||
|
var item = GetItemUIByIndex(SelectIndex);
|
||||||
item.SetSelectState(true);
|
item.SetSelectState(true);
|
||||||
base.OnCmdBack(item);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnCmdSelectItemUp()
|
protected override void OnCmdSelectItemUp()
|
||||||
|
@ -60,14 +60,16 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public override void Init(List<MenuData> menuDataList) { }
|
public override void Init(List<MenuData> menuDataList) { }
|
||||||
|
|
||||||
protected override bool OnCmdEnter(MenuItem item)
|
protected override bool OnCmdEnter()
|
||||||
{
|
{
|
||||||
|
var item = GetItemUIByIndex(SelectIndex);
|
||||||
return item.OnEnterItem();
|
return item.OnEnterItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnCmdBack(MenuItem item)
|
protected override void OnCmdBack()
|
||||||
{
|
{
|
||||||
return item.OnExitItem();
|
var item = GetItemUIByIndex(SelectIndex);
|
||||||
|
item.OnExitItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LateUpdate()
|
private void LateUpdate()
|
||||||
|
Loading…
Reference in New Issue
Block a user