public void AddConditionCallBack(CheckConditionDelegate onCheckConditionHandler, CheckCallBackDelegate onCheckCallBackHandler, float intervalTime = 3.0f) { if (intervalTime <= 0 || onCheckConditionHandler == null || onCheckCallBackHandler == null) { return; } ConditionalRoutine data = new ConditionalRoutine(); data.CheckConditionHandler = onCheckConditionHandler; data.CheckCallBackHandler = onCheckCallBackHandler; data.CheckRemainTime = intervalTime; data.CheckTimeInterval = 0; data.StatusList = onCheckConditionHandler(); ConditionalRoutineList.Add(data); }
public void RemoveConditionCallBack(CheckConditionDelegate onCheckConditionHandler, CheckCallBackDelegate onCheckCallBackHandler) { if (onCheckConditionHandler == null || onCheckCallBackHandler == null) { return; } for (int i = ConditionalRoutineList.Count - 1; i >= 0; i--) { ConditionalRoutine data = ConditionalRoutineList[i]; if (data.CheckCallBackHandler == onCheckCallBackHandler && data.CheckConditionHandler == onCheckConditionHandler) { ConditionalRoutineList.Remove(data); } } }