46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | namespace MMO | |||
|  | { | |||
|  |     public class MMOAPIRequestManager : MMOSingleton<MMOAPIRequestManager> | |||
|  |     { | |||
|  |         private List<MMOAPIRequestUnit> mRequestList = new List<MMOAPIRequestUnit>(); | |||
|  |         private Dictionary<Type, object> mRespondDataDic = new Dictionary<Type, object>(); | |||
|  | 
 | |||
|  |         public T GetData<T>() where T : MMORespondBase | |||
|  |         { | |||
|  |             Type tTypeKey = typeof(T); | |||
|  |             if (mRespondDataDic.ContainsKey(tTypeKey)) | |||
|  |             { | |||
|  |                 return mRespondDataDic[tTypeKey] as T; | |||
|  |             } | |||
|  | 
 | |||
|  |             return null; | |||
|  |         } | |||
|  | 
 | |||
|  |         public void SetData<T>(T pData) where T : MMORespondBase | |||
|  |         { | |||
|  |             mRespondDataDic[typeof(T)] = pData; | |||
|  |         } | |||
|  | 
 | |||
|  |         public void SendRequest<T, U>(T pRequestData, Action<U> pRespondCallback = null, Action<int> pErrorCallback = null) where T : MMORequestBase | |||
|  |         { | |||
|  |             MMOAPIRequestUnit tUnit = gameObject.AddComponent<MMOAPIRequestUnit>(); | |||
|  |             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); | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |