protected void Complete() { // Make sure all plugins are set to their latest version, even if they // don't have a migration to it. SetPluginVersionsToCurrent(); AssetDatabase.SaveAssets(); MigrationAnalytics.Send(analyticsData); var ok = EditorUtility.DisplayDialog("Unity Visual Scripting Upgrade", "Migration complete!", "OK"); UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation(); }
public void OnUpdate() { // If there are no migration steps required, don't bother the user if (steps.Count <= 0) { SetPluginVersionsToCurrent(); MigrationAnalytics.Send(analyticsData); return; } var firstVSPackageVersion = new SemanticVersion(1, 5, 0, "", 0); var olderVersionText = BoltCore.Manifest.savedVersion < firstVSPackageVersion ? "Unity Visual Scripting (Bolt)" : "Unity Visual Scripting"; if (EditorSettings.serializationMode != SerializationMode.ForceText) { EditorUtility.DisplayDialog("Unity Visual Scripting Upgrade", $"We've detected an older version of {olderVersionText}.\n\n" + "We can't migrate your project unless you use ForceText as your serialization mode. Go to Edit -> Project Settings -> Editor -> Asset Serialization -> Mode to set it.\n\n" + "Re-initiate the migration by installing the package.", "OK / Uninstall"); Client.Remove("com.unity.visualscripting"); return; } var ok = EditorUtility.DisplayDialog("Unity Visual Scripting Upgrade", $"We've detected an older version of {olderVersionText}.\n\n" + "Your project and bolt assets will be backed up and migrated to work with the newest version. This can take a few minutes.", "Migrate My Project", "Cancel / Uninstall"); if (!ok) { Client.Remove("com.unity.visualscripting"); return; } VSBackupUtility.Backup(); // ClearLog(); for (var i = 0; i < steps.Count; ++i) { var step = steps[i]; step.Reset(); step.Run(); if (step.state == MigrationStep.State.Failure) { Debug.LogWarning( $"VisualScripting - A migration step for {step.plugin.id} failed! Your project might be in an invalid state, restore your backup and try again..."); analyticsData.steps[i].success = false; analyticsData.steps[i].exception = AnalyticsUtilities.AnonymizeException(step.exception); analyticsData.total.success = false; break; #if VISUAL_SCRIPT_DEBUG_MIGRATION throw step.exception; #endif } else { analyticsData.steps[i].success = true; } } Complete(); }