public override void Perform()
    {
        CoreUpdateManager.PerformUpdateManagerRoutine();

        if (HasEntries && !isPaused)
        {
            int cnt = UpperBound;
            for (int i = LowerBound + 1; i < cnt; i++)
            {
                if (queue[i].UM_SETTINGS_GAMEPLAYUPDATE.eligibleForUpdate)
                {
#if UPDATEMANAGER_USETRYCATCH
                    try
                    {
                        queue[i].CoreGameplayUpdate();
                    }
                    catch (Exception e)
                    {
                        Debug.LogException(e);
                    }
#else
                    queue[i].CoreGameplayUpdate();
#endif
                }
            }

            CoreUpdateManager.PerformUpdateManagerRoutine();
        }
    }
 private void LateUpdate()
 {
     CoreUpdateManager.PerformUpdateManagerRoutine();
 }