using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace MMO { public class MMOAPIRequestManager : MMOSingleton { private List mRequestList = new List(); private Dictionary mRespondDataDic = new Dictionary(); public T GetData() where T : MMORespondBase { Type tTypeKey = typeof(T); if (mRespondDataDic.ContainsKey(tTypeKey)) { return mRespondDataDic[tTypeKey] as T; } return null; } public void SetData(T pData) where T : MMORespondBase { mRespondDataDic[typeof(T)] = pData; } public void SendRequest(T pRequestData, Action pRespondCallback = null, Action pErrorCallback = null) where T : MMORequestBase { MMOAPIRequestUnit tUnit = gameObject.AddComponent(); mRequestList.Add(tUnit); tUnit.DelOver = OnRequestOver; tUnit.SendRequest(pRequestData, pRespondCallback, pErrorCallback); } private void OnRequestOver(MMOAPIRequestUnit pUnit) { if (mRequestList.Contains(pUnit)) { mRequestList.Remove(pUnit); Destroy(pUnit); } } } }