예제 #1
0
    private IEnumerator AsyncLoadFromURL(string fileURL, string iniSection, IniLoadedCallback loadedCallback)
    {
        fileURL = GetLocalURL(fileURL);

        this.LogTrace("Loading ini file from URL '" + fileURL + "'", LogCategory.INITIALIZATION);

        string errorMessage;

        byte[] iniBytes = null;

        using (WWW wwwRequest = new WWW(fileURL)) {
            // Wait for download to finish
            yield return(wwwRequest);

            errorMessage = wwwRequest.error;
            if (String.IsNullOrEmpty(errorMessage))
            {
                iniBytes = wwwRequest.bytes;
            }
        }

        if (!String.IsNullOrEmpty(errorMessage))
        {
            this.LogWarning("Could not load ini file from URL '" + fileURL + "': " + errorMessage);
            loadedCallback(null);
            yield break;
        }

        string iniContents = Encoding.UTF8.GetString(iniBytes, 0, iniBytes.Length);

        loadedCallback(Parse(iniContents, iniSection));
    }
예제 #2
0
 public void LoadFromURL(string fileURL, string iniSection, IniLoadedCallback loadedCallback)
 {
     _coroutineCreator.StartCoroutine(AsyncLoadFromURL(fileURL, iniSection, loadedCallback));
 }