Пример #1
0
        /// <summary>
        /// 请求异步事件
        /// </summary>
        /// <param name="requestType"></param>
        /// <param name="requestArgs"></param>
        /// <param name="responseType"></param>
        /// <param name="handler"></param>
        /// <param name="timeOut"></param>
        public static void Request(string requestType, ArrayList requestArgs, string responseType, Action <ArrayList> handler, float timeOut = 2)
        {
            string responseString = responseType + "Request";
            //处理返回动作
            Action <ArrayList> responseHandler = null;

            CoroutineTaskManager.CoroutineTask task = null;
            responseHandler = (array) => {
                handler(array);
                EventDispatcher.RemoveEventListener <ArrayList>(responseString, responseHandler);
                task.Stop();
            };
            //监听返回行为
            EventDispatcher.AddEventListener <ArrayList>(responseString, responseHandler);
            //出发请求事件
            EventDispatcher.TriggerEvent <ArrayList>(requestType, requestArgs);
            //处理超时情况
            task = CoroutineTaskManager.Instance.WaitSecondTodo(() =>
            {
                Debug.logger.LogError("Request", requestType + "request Timeout!");
                EventDispatcher.RemoveEventListener <ArrayList>(responseString, responseHandler);
            }, timeOut);
        }
Пример #2
0
 /// <summary>
 /// 改变数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="dataId"></param>
 /// <param name="value"></param>
 public static void ChangeData <T>(string dataId, T value)
 {
     EventDispatcher.TriggerEvent <T>(dataId, value);
 }
Пример #3
0
 /// <summary>
 /// 回应异步事件
 /// </summary>
 /// <param name="responseType"></param>
 /// <param name="responseArgs"></param>
 public static void Response(string responseType, ArrayList responseArgs)
 {
     //返回所请求的消息
     EventDispatcher.TriggerEvent <ArrayList>(responseType + "Request", responseArgs);
 }
Пример #4
0
 /// <summary>
 /// 设定数值
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="eventName"></param>
 /// <param name="value"></param>
 public static void SetData <T>(string eventName, T value)
 {
     EventDispatcher.TriggerEvent <T>(eventName, value);
 }