目录结构调整

This commit is contained in:
ALIENJACK\alien 2024-09-12 15:10:48 +08:00
parent 7d7b864c1b
commit f8fc518a44
5 changed files with 106 additions and 80 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1e5c9fb1d636a5d43b09c7db07044b4f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,86 @@
using AxibugEmuOnline.Client.UI;
using System;
using System.Collections.Generic;
using UnityEngine;
namespace AxibugEmuOnline.Client
{
public class CommandDispatcher : MonoBehaviour
{
public static CommandDispatcher Instance { get; private set; }
List<CommandExecuter> m_register = new List<CommandExecuter>();
Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
private void Awake()
{
Instance = this;
m_keyMapper.Add(KeyCode.A, EnumCommand.SelectItemLeft);
m_keyMapper.Add(KeyCode.D, EnumCommand.SelectItemRight);
m_keyMapper.Add(KeyCode.W, EnumCommand.SelectItemUp);
m_keyMapper.Add(KeyCode.S, EnumCommand.SelectItemDown);
m_keyMapper.Add(KeyCode.K, EnumCommand.Enter);
m_keyMapper.Add(KeyCode.L, EnumCommand.Back);
m_keyMapper.Add(KeyCode.I, EnumCommand.OptionMenu);
m_keyMapper.Add(KeyCode.LeftArrow, EnumCommand.SelectItemLeft);
m_keyMapper.Add(KeyCode.RightArrow, EnumCommand.SelectItemRight);
m_keyMapper.Add(KeyCode.UpArrow, EnumCommand.SelectItemUp);
m_keyMapper.Add(KeyCode.DownArrow, EnumCommand.SelectItemDown);
m_keyMapper.Add(KeyCode.Return, EnumCommand.Enter);
m_keyMapper.Add(KeyCode.Escape, EnumCommand.Back);
m_keyMapper.Add(KeyCode.RightShift, EnumCommand.OptionMenu);
m_keyMapper.Add(KeyCode.LeftShift, EnumCommand.OptionMenu);
}
private void OnDestroy()
{
Instance = null;
}
public void RegistController(CommandExecuter controller)
{
if (m_register.Contains(controller)) { return; }
m_register.Add(controller);
}
public void UnRegistController(CommandExecuter menuItemController)
{
m_register.Remove(menuItemController);
}
readonly List<CommandExecuter> oneFrameRegister = new List<CommandExecuter>();
private void Update()
{
foreach (var item in m_keyMapper)
{
if (Input.GetKeyDown(item.Key))
{
oneFrameRegister.Clear();
oneFrameRegister.AddRange(m_register);
for (int i = 0; i < oneFrameRegister.Count; i++)
{
var controller = oneFrameRegister[i];
if (!controller.Enable) continue;
controller.ExecuteCommand(item.Value, false);
}
}
if (Input.GetKeyUp(item.Key))
{
oneFrameRegister.Clear();
oneFrameRegister.AddRange(m_register);
for (int i = 0; i < oneFrameRegister.Count; i++)
{
var controller = oneFrameRegister[i];
if (!controller.Enable) continue;
controller.ExecuteCommand(item.Value, true);
}
}
}
}
}
}

View File

@ -1,89 +1,10 @@
using AxibugEmuOnline.Client.UI;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AxibugEmuOnline.Client
{
public class CommandDispatcher : MonoBehaviour
{
public static CommandDispatcher Instance { get; private set; }
List<CommandExecuter> m_register = new List<CommandExecuter>();
Dictionary<KeyCode, EnumCommand> m_keyMapper = new Dictionary<KeyCode, EnumCommand>();
private void Awake()
{
Instance = this;
m_keyMapper.Add(KeyCode.A, EnumCommand.SelectItemLeft);
m_keyMapper.Add(KeyCode.D, EnumCommand.SelectItemRight);
m_keyMapper.Add(KeyCode.W, EnumCommand.SelectItemUp);
m_keyMapper.Add(KeyCode.S, EnumCommand.SelectItemDown);
m_keyMapper.Add(KeyCode.K, EnumCommand.Enter);
m_keyMapper.Add(KeyCode.L, EnumCommand.Back);
m_keyMapper.Add(KeyCode.I, EnumCommand.OptionMenu);
m_keyMapper.Add(KeyCode.LeftArrow, EnumCommand.SelectItemLeft);
m_keyMapper.Add(KeyCode.RightArrow, EnumCommand.SelectItemRight);
m_keyMapper.Add(KeyCode.UpArrow, EnumCommand.SelectItemUp);
m_keyMapper.Add(KeyCode.DownArrow, EnumCommand.SelectItemDown);
m_keyMapper.Add(KeyCode.Return, EnumCommand.Enter);
m_keyMapper.Add(KeyCode.Escape, EnumCommand.Back);
m_keyMapper.Add(KeyCode.RightShift, EnumCommand.OptionMenu);
m_keyMapper.Add(KeyCode.LeftShift, EnumCommand.OptionMenu);
}
private void OnDestroy()
{
Instance = null;
}
public void RegistController(CommandExecuter controller)
{
if (m_register.Contains(controller)) { return; }
m_register.Add(controller);
}
public void UnRegistController(CommandExecuter menuItemController)
{
m_register.Remove(menuItemController);
}
readonly List<CommandExecuter> oneFrameRegister = new List<CommandExecuter>();
private void Update()
{
foreach (var item in m_keyMapper)
{
if (Input.GetKeyDown(item.Key))
{
oneFrameRegister.Clear();
oneFrameRegister.AddRange(m_register);
for (int i = 0; i < oneFrameRegister.Count; i++)
{
var controller = oneFrameRegister[i];
if (!controller.Enable) continue;
controller.ExecuteCommand(item.Value, false);
}
}
if (Input.GetKeyUp(item.Key))
{
oneFrameRegister.Clear();
oneFrameRegister.AddRange(m_register);
for (int i = 0; i < oneFrameRegister.Count; i++)
{
var controller = oneFrameRegister[i];
if (!controller.Enable) continue;
controller.ExecuteCommand(item.Value, true);
}
}
}
}
}
public abstract class CommandExecuter : MonoBehaviour
{
private PulseInvoker m_pulsInvoker_Left;

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8506406a7119fff468b4ce029101f81a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: