Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }