79 lines
2.6 KiB
C#
79 lines
2.6 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace AxiInputSP.UGUI
|
|
{
|
|
public static class AxiInputUGUICenter
|
|
{
|
|
static int handleSeed = 0;
|
|
static Dictionary<int, AxiInputUGUIHandle> dictHandle2AxiUgui = new Dictionary<int, AxiInputUGUIHandle>();
|
|
static Dictionary<AxiInputUGuiBtnType, List<AxiInputUGUIHandle>> dictBtnType2BtnList = new Dictionary<AxiInputUGuiBtnType, List<AxiInputUGUIHandle>>();
|
|
|
|
public static int GetNextSeed()
|
|
{
|
|
return ++handleSeed;
|
|
}
|
|
public static void RegHandle(AxiInputUGUIHandle uiHandle)
|
|
{
|
|
dictHandle2AxiUgui[uiHandle.Handle] = uiHandle;
|
|
List<AxiInputUGUIHandle> list;
|
|
if (dictBtnType2BtnList.TryGetValue(uiHandle.UguiBtnType, out list))
|
|
list = dictBtnType2BtnList[uiHandle.UguiBtnType] = new List<AxiInputUGUIHandle>();
|
|
|
|
if (!list.Contains(uiHandle))
|
|
list.Add(uiHandle);
|
|
}
|
|
public static void UnregHandle(AxiInputUGUIHandle uiHandle)
|
|
{
|
|
if (!dictHandle2AxiUgui.ContainsKey(uiHandle.Handle))
|
|
return;
|
|
dictHandle2AxiUgui.Remove(uiHandle.Handle);
|
|
|
|
List<AxiInputUGUIHandle> list;
|
|
if (dictBtnType2BtnList.TryGetValue(uiHandle.UguiBtnType, out list))
|
|
{
|
|
if (list.Contains(uiHandle))
|
|
list.Remove(uiHandle);
|
|
}
|
|
}
|
|
|
|
public static bool GetKeyUp(AxiInputUGuiBtnType btntype)
|
|
{
|
|
List<AxiInputUGUIHandle> list;
|
|
if (!dictBtnType2BtnList.TryGetValue(btntype, out list))
|
|
return false;
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
if (list[i].GetKeyUp())
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public static bool GetKeyDown(AxiInputUGuiBtnType btntype)
|
|
{
|
|
List<AxiInputUGUIHandle> list;
|
|
if (!dictBtnType2BtnList.TryGetValue(btntype, out list))
|
|
return false;
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
if (list[i].GetKeyDown())
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public static bool GetKey(AxiInputUGuiBtnType btntype)
|
|
{
|
|
List<AxiInputUGUIHandle> list;
|
|
if (!dictBtnType2BtnList.TryGetValue(btntype, out list))
|
|
return false;
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
if (list[i].GetKey())
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
}
|