Skip to content

Commit e582536

Browse files
authored
Merge pull request #176 from Unity-Technologies/usim_upload_progess_-bar
Added progress bar for USim upload
2 parents 286cfaf + bc60823 commit e582536

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

com.unity.perception/Editor/Randomization/Editors/RunInUnitySimulationWindow.cs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ void CreateRunInUnitySimulationUI()
129129
sysParamMenu.text = definition.description;
130130
});
131131
}
132+
132133
sysParamMenu.text = sysParamDefinitions[0].description;
133134
m_SysParam = sysParamDefinitions[0];
134135

@@ -152,6 +153,7 @@ async void RunInUnitySimulation()
152153
}
153154
catch (Exception e)
154155
{
156+
EditorUtility.ClearProgressBar();
155157
PerceptionEditorAnalytics.ReportRunInUnitySimulationFailed(runGuid, e.Message);
156158
throw;
157159
}
@@ -199,22 +201,24 @@ void CreateLinuxBuildAndZip()
199201
Debug.Log("Created build zip");
200202
}
201203

202-
List<AppParam> GenerateAppParamIds(CancellationToken token)
204+
List<AppParam> GenerateAppParamIds(CancellationToken token, float progressStart, float progressEnd)
203205
{
204206
var appParamIds = new List<AppParam>();
205207
var scenario = (ScenarioBase)m_ScenarioField.value;
206208
var configuration = JObject.Parse(scenario.SerializeToJson());
207209
var constants = configuration["constants"];
208210

209211
constants["totalIterations"] = m_TotalIterationsField.value;
210-
constants["instanceCount"]= m_InstanceCountField.value;
212+
constants["instanceCount"] = m_InstanceCountField.value;
213+
214+
var progressIncrement = (progressEnd - progressStart) / m_InstanceCountField.value;
211215

212216
for (var i = 0; i < m_InstanceCountField.value; i++)
213217
{
214218
if (token.IsCancellationRequested)
215219
return null;
216220
var appParamName = $"{m_RunNameField.value}_{i}";
217-
constants["instanceIndex"]= i;
221+
constants["instanceIndex"] = i;
218222

219223
var appParamsString = JsonConvert.SerializeObject(configuration, Formatting.Indented);
220224
var appParamId = API.UploadAppParam(appParamName, appParamsString);
@@ -224,13 +228,17 @@ List<AppParam> GenerateAppParamIds(CancellationToken token)
224228
name = appParamName,
225229
num_instances = 1
226230
});
231+
232+
EditorUtility.DisplayProgressBar("Unity Simulation Run", $"Uploading app-param-ids for instances: {i + 1}/{m_InstanceCountField.value}", progressStart + progressIncrement * i);
227233
}
228234

229235
return appParamIds;
230236
}
231237

232238
async Task StartUnitySimulationRun(Guid runGuid)
233239
{
240+
EditorUtility.DisplayProgressBar("Unity Simulation Run", "Uploading build...", 0.1f);
241+
234242
m_RunButton.SetEnabled(false);
235243
var cancellationTokenSource = new CancellationTokenSource();
236244
var token = cancellationTokenSource.Token;
@@ -242,14 +250,18 @@ async Task StartUnitySimulationRun(Guid runGuid)
242250
cancellationTokenSource: cancellationTokenSource);
243251
Debug.Log($"Build upload complete: build id {buildId}");
244252

245-
var appParams = GenerateAppParamIds(token);
253+
var appParams = GenerateAppParamIds(token, 0.1f, 0.9f);
246254
if (token.IsCancellationRequested)
247255
{
248256
Debug.Log("Run cancelled");
257+
EditorUtility.ClearProgressBar();
249258
return;
250259
}
260+
251261
Debug.Log($"Generated app-param ids: {appParams.Count}");
252262

263+
EditorUtility.DisplayProgressBar("Unity Simulation Run", $"Uploading run definition...", 0.9f);
264+
253265
var runDefinitionId = API.UploadRunDefinition(new RunDefinition
254266
{
255267
app_params = appParams.ToArray(),
@@ -259,12 +271,16 @@ async Task StartUnitySimulationRun(Guid runGuid)
259271
});
260272
Debug.Log($"Run definition upload complete: run definition id {runDefinitionId}");
261273

274+
EditorUtility.DisplayProgressBar("Unity Simulation Run", $"Executing run...", 0.95f);
275+
262276
var run = Run.CreateFromDefinitionId(runDefinitionId);
263277
run.Execute();
264278
cancellationTokenSource.Dispose();
265279
Debug.Log($"Executing run: {run.executionId}");
266280
m_RunButton.SetEnabled(true);
267281

282+
EditorUtility.ClearProgressBar();
283+
268284
PerceptionEditorAnalytics.ReportRunInUnitySimulationSucceeded(runGuid, run.executionId);
269285
}
270286
}

0 commit comments

Comments
 (0)