Example #1
0
        //---------------------------------------------------------------------
        public bool IsDone()
        {
            while (QueUpdateFile.Count > 0 && MapWWW.Count < 5)
            {
                string          s1          = QueUpdateFile.Dequeue();
                var             s2          = Path.Combine(RemoteDataRootUrl, s1);
                UnityWebRequest web_request = UnityWebRequest.Get(s2);
                MapWWW[s1] = web_request;
                web_request.SendWebRequest();
            }

            foreach (var i in MapWWW)
            {
                if (!i.Value.isDone)
                {
                    continue;
                }

                ListFinished.Add(i.Key);

                var    str = PersistentDataRootDir + i.Key;
                string d   = Path.GetDirectoryName(str);
                if (!Directory.Exists(d))
                {
                    Directory.CreateDirectory(d);
                }

                using (FileStream fs = new FileStream(str, FileMode.Create))
                {
                    DownloadHandler dh = i.Value.downloadHandler;
                    fs.Write(dh.data, 0, dh.data.Length);
                }

                i.Value.Dispose();
            }

            foreach (var i in ListFinished)
            {
                MapWWW.Remove(i);
            }
            ListFinished.Clear();

            LeftCount = QueUpdateFile.Count;

            return(QueUpdateFile.Count > 0 || MapWWW.Count > 0 ? false : true);
        }
        //---------------------------------------------------------------------
        public bool IsDone()
        {
            while (QueUpdateFile.Count > 0 && MapWWW.Count < 5)
            {
                string s1 = QueUpdateFile.Dequeue();
                var    s2 = Path.Combine(RemoteDataRootUrl, s1);
                MapWWW[s1] = new WWW(s2);
            }

            foreach (var i in MapWWW)
            {
                if (!i.Value.isDone)
                {
                    continue;
                }
                ListFinished.Add(i.Key);

                var    str = RemoteDataRootDir + i.Key;
                string d   = Path.GetDirectoryName(str);
                if (!Directory.Exists(d))
                {
                    Directory.CreateDirectory(d);
                }

                using (FileStream fs = new FileStream(str, FileMode.Create))
                {
                    fs.Write(i.Value.bytes, 0, i.Value.bytes.Length);
                }

                i.Value.Dispose();
            }

            foreach (var i in ListFinished)
            {
                MapWWW.Remove(i);
            }
            ListFinished.Clear();

            LeftCount = QueUpdateFile.Count;

            return(QueUpdateFile.Count > 0 || MapWWW.Count > 0 ? false : true);
        }