private void Refresh(bool forceFullRefresh) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); try { if (forceFullRefresh) { NugetHelper.ClearCachedCredentials(); } // reload the NuGet.config file, in case it was changed after Unity opened, but before the manager window opened (now) NugetHelper.LoadNugetConfigFile(); // if we are entering playmode, don't do anything if (EditorApplication.isPlayingOrWillChangePlaymode) { return; } NugetHelper.LogVerbose(hasRefreshed ? "NugetWindow reloading config" : "NugetWindow reloading config and updating packages"); // set the window title titleContent = new GUIContent("NuGet"); if (!hasRefreshed || forceFullRefresh) { // reset the number to skip numberToSkip = 0; // TODO: Do we even need to load ALL of the data, or can we just get the Online tab packages? EditorUtility.DisplayProgressBar("Opening NuGet", "Fetching packages from server...", 0.3f); UpdateOnlinePackages(); EditorUtility.DisplayProgressBar("Opening NuGet", "Getting installed packages...", 0.6f); NugetHelper.UpdateInstalledPackages(); EditorUtility.DisplayProgressBar("Opening NuGet", "Getting available updates...", 0.9f); UpdateUpdatePackages(); // load the default icon from the Resources folder defaultIcon = (Texture2D)Resources.Load("defaultIcon", typeof(Texture2D)); } hasRefreshed = true; } catch (Exception e) { UnityEngine.Debug.LogErrorFormat("{0}", e.ToString()); } finally { EditorUtility.ClearProgressBar(); NugetHelper.LogVerbose("NugetWindow reloading took {0} ms", stopwatch.ElapsedMilliseconds); } }