private void OnUploadComplete(string name, string desc, Util.Maybe <ulong> result)
 {
     uploadProgressGetter = null;
     if (result.GetErrorMessage() != null)
     {
         finishedMessage.text = result.GetErrorMessage();
     }
     else
     {
         string url = $"https://steamcommunity.com/sharedfiles/filedetails/?id={result.Get()}";
         finishedMessage.text = "Finished uploading! (Note: takes about 15 minutes to show up for other players)";
         visitButton.onClick.AddListener(() => Application.OpenURL(url));
         visitButton.gameObject.SetActive(true);
         OnUploadSuccess(result.Get());
     }
 }
    void StartUpload()
    {
        nameRequiredText.gameObject.SetActive(false);
        descRequiredText.gameObject.SetActive(false);
        string name = nameField.text;

        if (name.IsNullOrEmpty())
        {
            nameRequiredText.gameObject.SetActive(true);
            return;
        }
        string desc = descField.text;

        if (desc.IsNullOrEmpty())
        {
            descRequiredText.gameObject.SetActive(true);
            return;
        }
        uploadButton.gameObject.SetActive(false);
        DoUpload(result => OnUploadComplete(name, desc, result), onStatus => { uploadProgressGetter = onStatus; });
        finishedMessage.text = "Uploading: 0% complete";
        finishedMessage.gameObject.SetActive(true);
    }