void BeginModelDownload(FutureResult futureResult, string meshUri, string mtlUri, string textureUri) { _backendManager.DownloadFile(meshUri, (BackendRequestResult result, string filePath) => { if (result.Success) { _mapModelMeshPath = filePath; futureResult.CompletedActions.Add("GetMesh"); } else { if (!futureResult.Completed) { futureResult.Completed = true; futureResult.Success = false; futureResult.FailureReasons.Add("Failed to Download Mesh File: " + result.ErrorString); } } }); _backendManager.DownloadFile(mtlUri, (BackendRequestResult result, string filePath) => { if (result.Success) { _mapModelMtlPath = filePath; futureResult.CompletedActions.Add("GetMtl"); } else { if (!futureResult.Completed) { futureResult.Completed = true; futureResult.Success = false; futureResult.FailureReasons.Add("Failed to Download Mtl File: " + result.ErrorString); } } }); _backendManager.DownloadFile(textureUri, (BackendRequestResult result, string filePath) => { if (result.Success) { _mapModelTexturePath = filePath; futureResult.CompletedActions.Add("GetTexture"); } else { if (!futureResult.Completed) { futureResult.Completed = true; futureResult.Success = false; futureResult.FailureReasons.Add("Failed to Download Texture File: " + result.ErrorString); } } }); }