public bool AddMarsTimeSlowTask(Action action, float sleepTime, bool replace = false)
        {
            if (!replace && m_MarsTimeTasks.ContainsKey(action))
            {
                return(false);
            }

            m_MarsTimeTasksRegisteredThisFrame++;
            if (m_MarsTimeTasksRegisteredThisFrame % m_IncrementInterval == 0)
            {
                m_MarsTaskTime += m_OffsetIncrement;
            }

            var newTask = new SlowTask
            {
                task              = action,
                sleepTime         = sleepTime,
                lastExecutionTime = m_MarsTaskTime
            };

            m_MarsTimeTasks[action] = newTask;
            return(true);
        }
        public bool AddSlowTask(Action action, float sleepTime, bool replace = false)
        {
            if (!replace && m_Tasks.ContainsKey(action))
            {
                return(false);
            }

            m_TasksRegisteredThisFrame++;
            // Distribute work by making sure we don't pile up every task on the same frames
            if (m_TasksRegisteredThisFrame % m_IncrementInterval == 0)
            {
                m_StartTime += m_OffsetIncrement;
            }

            var newTask = new SlowTask
            {
                task              = action,
                sleepTime         = sleepTime,
                lastExecutionTime = m_StartTime
            };

            m_Tasks[action] = newTask;
            return(true);
        }