IndieGame/client/Assets/Ether/Scripts/Module/Input/EtherInputManager.cs

60 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
namespace Ether
{
public class EtherInputManager : SingletonAutoMono<EtherInputManager>
{
private Dictionary<DeviceType, List<EtherInputKeyCfg>> inputKeysDic;
public override void Init()
{
LoadInputKeys();
}
private void LoadInputKeys()
{
if (FileTools.FileExists(PathTools.EtherInputCfgPersistentPath))
{
FileTools.ReadFileForJson(PathTools.EtherInputCfgPersistentPath, out inputKeysDic);
}
else
{
FileTools.ReadFileForJson(PathTools.EtherInputCfgDefaultPath, out inputKeysDic);
}
}
private void Update()
{
if (inputKeysDic == null)
{
return;
}
foreach (var keyPair in inputKeysDic)
{
foreach (var keyCfg in keyPair.Value)
{
if (Input.GetKeyDown(keyCfg.KeyCode))
{
Debug.Log("按下:" + keyCfg.KeyCode);
foreach (var eventValue in keyCfg.EventList)
{
EventCenter.BroadCast(eventValue, true);
}
}
if (Input.GetKeyUp(keyCfg.KeyCode))
{
Debug.Log("抬起:" + keyCfg.KeyCode);
foreach (var eventValue in keyCfg.EventList)
{
EventCenter.BroadCast(eventValue, false);
}
}
}
}
}
}
}