name | The progress indicator's name. |
description | The progress indicator's initial description. |
taskHandler | The task handler that yields progress. |
options | The progress indicator options. |
parentId | The ID of the progress indicator's parent, if any. |
userData | User-defined data that is passed to the task handler. |
int The newly created identifier for the prgress indicator.
A helper method that you use to start a new task. The new task reports progress using asynchronous yielding in C#.
[MenuItem("Progress/Run Task 1 (MD5 all assets)", priority = 25)] static void RunTask1() { Progress.RunTask("Compute MD5", null, (id, data) => EnumerateMD5()); }
[MenuItem("Progress/Run Task 2 (Indefinite)", priority = 25)] static void RunTask2() { Progress.RunTask("Indefinite Task 1", null, (id, data) => EnumerateMD5(), Progress.Options.Indefinite); Progress.RunTask("Indefinite Task 2", null, (id, seconds) => WaitForSeconds((float)seconds, true), Progress.Options.Indefinite, -1, 5f); }
static string CalculateMD5(string filename) { using (var md5 = MD5.Create()) { using (var stream = File.OpenRead(filename)) { var hash = md5.ComputeHash(stream); return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); } } }
private static IEnumerator EnumerateMD5() { var assets = AssetDatabase.GetAllAssetPaths(); var index = 0; foreach (var assetPath in assets) { if (Directory.Exists(assetPath)) continue; // Do some calculations with the asset. var md5 = CalculateMD5(assetPath); yield return new Progress.TaskReport(index++ / (float)assets.Length, md5); } }
See Also: TaskReport, TaskError.
Did you find this page useful? Please give it a rating: