/// <summary> /// Called when the RealSense assembly is not found by AutoRun.cs /// </summary> public static void OpenPluginNotFoundOptions() { var lookForPlugin = EditorPrefs.GetInt(EditorPrefKey, 0); if (lookForPlugin < 1) { int pluginNotFoundOption = EditorUtility.DisplayDialogComplex(PACKAGE_NOT_FOUND_TITLE, PACKAGE_NOT_FOUND_MESSAGE, PACKAGE_NOT_FOUND_OK, PACKAGE_NOT_FOUND_CANCEL, PACKAGE_NOT_FOUND_ALT); switch (pluginNotFoundOption) { case 0: //Download if (_packageDownloaderState == PackageDownloaderState.None) { _packageDownloaderState = PackageDownloaderState.StartDownload; EditorApplication.update += OnEditorApplicationUpdate; } break; case 1: //Close break; case 2: //Close, Dont't Ask Again EditorPrefs.SetInt(EditorPrefKey, 1); break; } } }
public static void DownloadRealSensePackageMenuItem() { if (_packageDownloaderState == PackageDownloaderState.None) { _packageDownloaderState = PackageDownloaderState.StartDownload; EditorApplication.update += OnEditorApplicationUpdate; } }
static void StartDownloadState() { if (_packageDownloaderState == PackageDownloaderState.StartDownload || _packageDownloaderState == PackageDownloaderState.None) { EditorUtility.ClearProgressBar(); _unityWebRequest?.Dispose(); _unityWebRequest = new UnityWebRequest(GITHUB_DOWNLOAD_URL) { downloadHandler = new DownloadHandlerBuffer(), timeout = 10 }; Debug.Log($"Downloaded File to [{_downloadLocation}]"); var webRequest = _unityWebRequest.SendWebRequest(); webRequest.completed += (e) => { if (_unityWebRequest.result != UnityWebRequest.Result.Success) { Debug.LogError($"[Unity Web Request Error]: {_unityWebRequest.error} |{_unityWebRequest.result}"); _packageDownloaderState = PackageDownloaderState.Error; } else { EditorUtility.ClearProgressBar(); // Or retrieve results as binary data byte[] results = _unityWebRequest.downloadHandler.data; File.WriteAllBytes(_downloadLocation, results); } EditorUtility.ClearProgressBar(); _packageDownloaderState = PackageDownloaderState.None; AssetDatabase.ImportPackage(_downloadLocation, true); AssetDatabase.Refresh(); _unityWebRequest.Dispose(); }; _packageDownloaderState = PackageDownloaderState.IsDownloading; } }
static void ErrorState() { EditorUtility.ClearProgressBar(); int failedToDownloadOption = EditorUtility.DisplayDialogComplex(FAILED_TO_DOWNLOAD_TITLE, string.Format(FAILED_TO_DOWNLOAD_MESSAGE, _unityWebRequest.error), FAILED_TO_DOWNLOAD_OK, FAILED_TO_DOWNLOAD_CANCEL, FAILED_TO_DOWNLOAD_ALT); switch (failedToDownloadOption) { case 0: //Try Again _packageDownloaderState = PackageDownloaderState.StartDownload; break; case 1: //Stop _packageDownloaderState = PackageDownloaderState.None; break; case 2: //Download Manually _packageDownloaderState = PackageDownloaderState.None; Help.BrowseURL(GITHUB_DOWNLOAD_URL); break; } _unityWebRequest.Dispose(); }