public static void Trigger(string strTriggerName, AsyncTrigger.OnTrigger onTrigger, params object[] args) { if (!AsyncTrigger.mTriggers.ContainsKey(strTriggerName)) { return; } AsyncTrigger.TriggerInfo triggerInfo = AsyncTrigger.mTriggers[strTriggerName]; triggerInfo.iTriggerCount--; if (triggerInfo.iTriggerCount > 0) { return; } if (onTrigger != null) { try { onTrigger(args); } catch (Exception ex) { LogSystem.LogError(new object[] { ex.ToString() }); } } AsyncTrigger.mTriggers.Remove(strTriggerName); }
public static void CreateFrameTrigger(int frameDelay, AsyncTrigger.OnTrigger onTrigger, params object[] args) { AsyncTrigger.FrameTriggerInfo frameTriggerInfo = new AsyncTrigger.FrameTriggerInfo(); frameTriggerInfo.iFrameDelay = ((frameDelay >= 1) ? frameDelay : 1); frameTriggerInfo.onTrigger = onTrigger; frameTriggerInfo.args = args; AsyncTrigger.mFrameTrigger.Add(frameTriggerInfo); }
public static bool CreateTimeTrigger(string strTriggerName, float fDelayTime, AsyncTrigger.OnTrigger onTrigger, params object[] args) { if (AsyncTrigger.mTriggers.ContainsKey(strTriggerName)) { return(false); } AsyncTrigger.TriggerInfo triggerInfo = new AsyncTrigger.TriggerInfo(); triggerInfo.strTriggerName = strTriggerName; triggerInfo.onTrigger = onTrigger; triggerInfo.args = args; AsyncTrigger.mTriggers.Add(strTriggerName, triggerInfo); TimerManager.AddTimer(strTriggerName, fDelayTime, new TimerManager.TimerManagerHandlerArgs(AsyncTrigger.OnTriggerTimer), new object[] { strTriggerName, onTrigger }); return(true); }