public void OnAbortClick() { if (Request == null) { // If there's no request to abort, just hide the window gameObject.SetActive(false); return; } // Start a timer which will close the window // after timeout, in case abortion fails StartCoroutine(CloseAfterRequest(ForceCloseAfterAbortRequestTimeout, Request.SpawnId)); // Disable abort button AbortButton.interactable = false; Request.Abort(() => { AbortButton.interactable = false; }, error => { AbortButton.interactable = true; Debug.Log(error); }); }
protected void OnStatusChange(SpawnStatus status) { //We'll display the current status of the request Debug.Log(string.Format("Progress: {0}/{1} ({2})", (int)Request.Status, (int)SpawnStatus.Finalized, Request.Status)); //If game was aborted if (status < SpawnStatus.None) { Debug.Log("Game creation aborted"); return; } //Once the SpawnStatus reaches the Finalized state we can get the data from the finished request if (status == SpawnStatus.Finalized) { Request.GetFinalizationData((data, error) => { if (data == null) { Msf.Events.Fire(Msf.EventNames.ShowDialogBox, DialogBoxData.CreateInfo("Failed to retrieve completion data: " + error)); Logs.Error("Failed to retrieve completion data: " + error); Request.Abort(); return; } // Completion data received OnFinalizationDataRetrieved(data); }); } }