forked from sin365/AxibugEmuOnline
UI调整,事件派发机制抽象结构调整
This commit is contained in:
parent
f8fc518a44
commit
040c23e001
8
AxibugEmuOnline.Client/Assets/Editors.meta
Normal file
8
AxibugEmuOnline.Client/Assets/Editors.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fd41663b74cbfcc45a028bc891a8c4fc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "AxibugEmuOnline.Editor",
|
||||||
|
"rootNamespace": "AxibugEmuOnline.Editors",
|
||||||
|
"references": [
|
||||||
|
"GUID:3fe77f1eed9fc0847a86648f644fe815"
|
||||||
|
],
|
||||||
|
"includePlatforms": [
|
||||||
|
"Editor"
|
||||||
|
],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a37804d4d608e1e4bb8204f442ab0e60
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -0,0 +1,45 @@
|
|||||||
|
using AxibugEmuOnline.Client;
|
||||||
|
using System;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
namespace AxibugEmuOnline.Editors
|
||||||
|
{
|
||||||
|
[CustomEditor(typeof(CommandDispatcher))]
|
||||||
|
public class CommandDispatcherEditor : Editor
|
||||||
|
{
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
base.OnInspectorGUI();
|
||||||
|
|
||||||
|
var dispacather = target as CommandDispatcher;
|
||||||
|
|
||||||
|
dispacather.GetRegisters(out var normal, out var solo);
|
||||||
|
|
||||||
|
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
|
||||||
|
EditorGUILayout.LabelField("NORMAL");
|
||||||
|
foreach (var item in normal)
|
||||||
|
{
|
||||||
|
Draw(item);
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
|
||||||
|
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
|
||||||
|
EditorGUILayout.LabelField("SOLO");
|
||||||
|
foreach (var item in solo)
|
||||||
|
{
|
||||||
|
Draw(item);
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndVertical();
|
||||||
|
|
||||||
|
Repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Draw(CommandExecuter item)
|
||||||
|
{
|
||||||
|
EditorGUILayout.BeginHorizontal(EditorStyles.helpBox);
|
||||||
|
using (new EditorGUI.DisabledGroupScope(!item.Enable))
|
||||||
|
EditorGUILayout.ObjectField(item.gameObject, typeof(GameObject), false);
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 57378be70cec95341aea522ad2d8e30d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -182,12 +182,12 @@ Transform:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 74796456}
|
m_GameObject: {fileID: 74796456}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
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: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 1335662459}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!224 &246947326 stripped
|
--- !u!224 &246947326 stripped
|
||||||
RectTransform:
|
RectTransform:
|
||||||
@ -1107,6 +1107,40 @@ PrefabInstance:
|
|||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
|
m_SourcePrefab: {fileID: 100100000, guid: 450328d5a907c8249a60bc3980ba66f6, type: 3}
|
||||||
|
--- !u!1 &1335662458
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1335662459}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: IMPORTENT
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1335662459
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1335662458}
|
||||||
|
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:
|
||||||
|
- {fileID: 1639312037}
|
||||||
|
- {fileID: 74796459}
|
||||||
|
- {fileID: 1427887270}
|
||||||
|
- {fileID: 1599240741}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1427887268
|
--- !u!1 &1427887268
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -1136,25 +1170,20 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 4471d8231d16ba3469228e09d4cb3a81, type: 3}
|
m_Script: {fileID: 11500000, guid: 4471d8231d16ba3469228e09d4cb3a81, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
--- !u!224 &1427887270
|
--- !u!4 &1427887270
|
||||||
RectTransform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1427887268}
|
m_GameObject: {fileID: 1427887268}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
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: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 1335662459}
|
||||||
m_RootOrder: 3
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
|
||||||
m_AnchoredPosition: {x: 960, y: 540}
|
|
||||||
m_SizeDelta: {x: 100, y: 100}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!1 &1498586261
|
--- !u!1 &1498586261
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 3
|
m_ObjectHideFlags: 3
|
||||||
@ -1196,7 +1225,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1599240737
|
--- !u!1 &1599240737
|
||||||
GameObject:
|
GameObject:
|
||||||
@ -1291,8 +1320,8 @@ RectTransform:
|
|||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1983793178}
|
- {fileID: 1983793178}
|
||||||
- {fileID: 246947326}
|
- {fileID: 246947326}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 1335662459}
|
||||||
m_RootOrder: 4
|
m_RootOrder: 3
|
||||||
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: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
@ -1375,11 +1404,11 @@ Transform:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1639312034}
|
m_GameObject: {fileID: 1639312034}
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
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: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 1335662459}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!224 &1983793178 stripped
|
--- !u!224 &1983793178 stripped
|
||||||
@ -1394,6 +1423,54 @@ PrefabInstance:
|
|||||||
m_Modification:
|
m_Modification:
|
||||||
m_TransformParent: {fileID: 1599240741}
|
m_TransformParent: {fileID: 1599240741}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
|
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 1714682891259844147, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 2780569438310375802, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
- target: {fileID: 4478785627166277609, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: OptionUI
|
value: OptionUI
|
||||||
@ -1486,5 +1563,29 @@ PrefabInstance:
|
|||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchorMax.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchorMin.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_SizeDelta.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6503369113137645357, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
|
||||||
|
propertyPath: m_AnchoredPosition.y
|
||||||
|
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}
|
||||||
|
@ -49,6 +49,9 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
GameObject.DontDestroyOnLoad(go);
|
GameObject.DontDestroyOnLoad(go);
|
||||||
coRunner = go.AddComponent<CoroutineRunner>();
|
coRunner = go.AddComponent<CoroutineRunner>();
|
||||||
|
|
||||||
|
var importNode = GameObject.Find("IMPORTENT");
|
||||||
|
GameObject.DontDestroyOnLoad(importNode);
|
||||||
|
|
||||||
StartCoroutine(AppTickFlow());
|
StartCoroutine(AppTickFlow());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
using AxibugEmuOnline.Client.UI;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,7 +7,11 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
public static CommandDispatcher Instance { get; private set; }
|
public static CommandDispatcher Instance { get; private set; }
|
||||||
|
|
||||||
|
/// <summary> 平级注册对象,都会响应指令 </summary>
|
||||||
List<CommandExecuter> m_register = new List<CommandExecuter>();
|
List<CommandExecuter> m_register = new List<CommandExecuter>();
|
||||||
|
/// <summary> 独占注册对象,指令会被列表中最后一个对象独占 </summary>
|
||||||
|
List<CommandExecuter> m_registerHigh = new List<CommandExecuter>();
|
||||||
|
|
||||||
Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
|
Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
@ -41,14 +43,26 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public void RegistController(CommandExecuter controller)
|
public void RegistController(CommandExecuter controller)
|
||||||
{
|
{
|
||||||
if (m_register.Contains(controller)) { return; }
|
if (!controller.AloneMode)
|
||||||
|
{
|
||||||
|
if (m_register.Contains(controller)) { return; }
|
||||||
|
|
||||||
m_register.Add(controller);
|
m_register.Add(controller);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (m_registerHigh.Contains(controller)) { return; }
|
||||||
|
|
||||||
|
m_registerHigh.Add(controller);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UnRegistController(CommandExecuter menuItemController)
|
public void UnRegistController(CommandExecuter menuItemController)
|
||||||
{
|
{
|
||||||
m_register.Remove(menuItemController);
|
if (!menuItemController.AloneMode)
|
||||||
|
m_register.Remove(menuItemController);
|
||||||
|
else
|
||||||
|
m_registerHigh.Remove(menuItemController);
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly List<CommandExecuter> oneFrameRegister = new List<CommandExecuter>();
|
readonly List<CommandExecuter> oneFrameRegister = new List<CommandExecuter>();
|
||||||
@ -56,31 +70,60 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
foreach (var item in m_keyMapper)
|
foreach (var item in m_keyMapper)
|
||||||
{
|
{
|
||||||
|
peekRegister(oneFrameRegister);
|
||||||
|
|
||||||
if (Input.GetKeyDown(item.Key))
|
if (Input.GetKeyDown(item.Key))
|
||||||
{
|
{
|
||||||
oneFrameRegister.Clear();
|
foreach (var controller in oneFrameRegister)
|
||||||
oneFrameRegister.AddRange(m_register);
|
|
||||||
|
|
||||||
for (int i = 0; i < oneFrameRegister.Count; i++)
|
|
||||||
{
|
{
|
||||||
var controller = oneFrameRegister[i];
|
|
||||||
if (!controller.Enable) continue;
|
if (!controller.Enable) continue;
|
||||||
controller.ExecuteCommand(item.Value, false);
|
controller.ExecuteCommand(item.Value, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Input.GetKeyUp(item.Key))
|
if (Input.GetKeyUp(item.Key))
|
||||||
{
|
{
|
||||||
oneFrameRegister.Clear();
|
foreach (var controller in oneFrameRegister)
|
||||||
oneFrameRegister.AddRange(m_register);
|
|
||||||
|
|
||||||
for (int i = 0; i < oneFrameRegister.Count; i++)
|
|
||||||
{
|
{
|
||||||
var controller = oneFrameRegister[i];
|
|
||||||
if (!controller.Enable) continue;
|
if (!controller.Enable) continue;
|
||||||
controller.ExecuteCommand(item.Value, true);
|
controller.ExecuteCommand(item.Value, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<CommandExecuter> peekRegister(List<CommandExecuter> results)
|
||||||
|
{
|
||||||
|
results.Clear();
|
||||||
|
|
||||||
|
if (m_registerHigh.Count > 0)
|
||||||
|
{
|
||||||
|
for (int i = m_registerHigh.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
var controller = m_registerHigh[i];
|
||||||
|
if (controller.Enable)
|
||||||
|
{
|
||||||
|
results.Add(controller);
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var controller in m_register)
|
||||||
|
{
|
||||||
|
if (!controller.Enable) continue;
|
||||||
|
|
||||||
|
results.Add(controller);
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
public void GetRegisters(out IReadOnlyList<CommandExecuter> normal, out IReadOnlyList<CommandExecuter> alone)
|
||||||
|
{
|
||||||
|
normal = m_register;
|
||||||
|
alone = m_registerHigh;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
float PulseInvoke_Interval = 0.05f;
|
float PulseInvoke_Interval = 0.05f;
|
||||||
|
|
||||||
public abstract bool Enable { get; }
|
public abstract bool Enable { get; }
|
||||||
|
public virtual bool AloneMode { get; }
|
||||||
|
|
||||||
protected virtual void Awake()
|
protected virtual void Awake()
|
||||||
{
|
{
|
||||||
|
@ -11,7 +11,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
protected List<MenuItem> m_runtimeMenuUI = new List<MenuItem>();
|
protected List<MenuItem> m_runtimeMenuUI = new List<MenuItem>();
|
||||||
public override bool Enable => enabled;
|
public override bool Enable => enabled;
|
||||||
|
|
||||||
private MenuItem m_enteredItem = null;
|
protected MenuItem m_enteredItem = null;
|
||||||
|
|
||||||
protected int m_selectIndex = -1;
|
protected int m_selectIndex = -1;
|
||||||
|
|
||||||
|
@ -17,6 +17,8 @@ namespace AxibugEmuOnline.Client
|
|||||||
[Header("Ä£°å")]
|
[Header("Ä£°å")]
|
||||||
[SerializeField] OptionUI_ExecuteItem TEMPLATE_EXECUTEITEM;
|
[SerializeField] OptionUI_ExecuteItem TEMPLATE_EXECUTEITEM;
|
||||||
|
|
||||||
|
public override bool AloneMode => true;
|
||||||
|
|
||||||
private bool m_bPoped = false;
|
private bool m_bPoped = false;
|
||||||
private List<MonoBehaviour> m_runtimeMenuItems = new List<MonoBehaviour>();
|
private List<MonoBehaviour> m_runtimeMenuItems = new List<MonoBehaviour>();
|
||||||
|
|
||||||
@ -77,6 +79,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
if (m_bPoped)
|
if (m_bPoped)
|
||||||
{
|
{
|
||||||
|
CommandDispatcher.Instance.UnRegistController(this);
|
||||||
m_bPoped = false;
|
m_bPoped = false;
|
||||||
Canvas.ForceUpdateCanvases();
|
Canvas.ForceUpdateCanvases();
|
||||||
var width = MenuRoot.rect.width;
|
var width = MenuRoot.rect.width;
|
||||||
@ -118,7 +121,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
protected override void OnSelectMenuChanged()
|
protected override void OnSelectMenuChanged()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,8 +66,9 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
protected override bool OnCmdEnter()
|
protected override bool OnCmdEnter()
|
||||||
{
|
{
|
||||||
LaunchUI.Instance.ToDetailMenuLayout();
|
|
||||||
base.OnCmdEnter();
|
base.OnCmdEnter();
|
||||||
|
|
||||||
|
LaunchUI.Instance.ToDetailMenuLayout();
|
||||||
var item = GetItemUIByIndex(SelectIndex);
|
var item = GetItemUIByIndex(SelectIndex);
|
||||||
item.SetSelectState(false);
|
item.SetSelectState(false);
|
||||||
|
|
||||||
@ -77,6 +78,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
protected override void OnCmdBack()
|
protected override void OnCmdBack()
|
||||||
{
|
{
|
||||||
base.OnCmdBack();
|
base.OnCmdBack();
|
||||||
|
|
||||||
LaunchUI.Instance.ToMainMenuLayout();
|
LaunchUI.Instance.ToMainMenuLayout();
|
||||||
var item = GetItemUIByIndex(SelectIndex);
|
var item = GetItemUIByIndex(SelectIndex);
|
||||||
item.SetSelectState(true);
|
item.SetSelectState(true);
|
||||||
@ -84,12 +86,14 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
protected override void OnCmdSelectItemUp()
|
protected override void OnCmdSelectItemUp()
|
||||||
{
|
{
|
||||||
SelectIndex--;
|
if (m_enteredItem == null)
|
||||||
|
SelectIndex--;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnCmdSelectItemDown()
|
protected override void OnCmdSelectItemDown()
|
||||||
{
|
{
|
||||||
SelectIndex++;
|
if (m_enteredItem == null)
|
||||||
|
SelectIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetSelect(bool select)
|
public virtual void SetSelect(bool select)
|
||||||
|
Loading…
Reference in New Issue
Block a user