示例#1
0
        private IEnumerator LoadWWWAsync(FileInfo f, bool dispose, Action <WWW> callback)
        {
            if (f != null)
            {
                WWW www = new WWW(new Uri(f.FullName, UriKind.RelativeOrAbsolute).AbsoluteUri);
                yield return(www);

                if (www.error.IsEmpty())
                {
                    callback(www);
                }
                else
                {
                    log.Warn(www.error);
                    callback(null);
                }
                if (dispose)
                {
                    www.DisposeEx();
                }
            }
            else
            {
                callback(null);
            }
        }
示例#2
0
 public void Dispose()
 {
     if (www != null)
     {
         www.DisposeEx();
         www = null;
     }
 }
示例#3
0
        private IEnumerator GetWWWCo(string url, bool dispose, Action <WWW> callback)
        {
            Entry e = GetCacheEntry(url);

            if (e.init && !e.exists)
            {
                callback.Call(null);
            }
            else
            {
                if (!e.assetPath.Contains("://"))
                {
                    e.assetPath = "file://" + e.assetPath;
                }
                WWW www = new WWW(e.assetPath);
                yield return(www);

                if (www.error.IsNotEmpty() && !e.assetPath.Is(FileType.Asset))
                {
                    www.DisposeEx();
                    e.assetPath = PathUtil.ReplaceExtension(e.assetPath, FileTypeEx.ASSET_BUNDLE);
                    www         = new WWW(e.assetPath);
                    yield return(www);
                }
                e.init   = true;
                e.exists = www.error.IsEmpty();
                if (e.exists)
                {
                    callback.Call(www);
                }
                else
                {
                    callback.Call(null);
                }
                if (dispose)
                {
                    www.DisposeEx();
                }
            }
        }
示例#4
0
 private void LoadFile(FileInfo f, Action <WWW> callback)
 {
     if (f != null)
     {
         byte[] bytes = File.ReadAllBytes(f.FullName);
         WWW    www   = new WWW(new Uri(f.FullName, UriKind.RelativeOrAbsolute).AbsoluteUri, bytes);
         if (www.error.IsEmpty())
         {
             callback(www);
         }
         else
         {
             log.Warn(www.error);
             callback(null);
         }
         www.DisposeEx();
     }
     else
     {
         callback(null);
     }
 }
示例#5
0
        private IEnumerator DownloadWeb(string src, object userState)
        {
            AssetCache c = caching? Web.cache: Web.noCache;

            www = (c.GetImpl() as WebAssetLoader).CreateWWW(src);
            yield return(www);

            WWW backup = www;

            if (DownloadFileCompleted != null)
            {
                DownloadFileCompleted(www, userState);
            }
            if (backup == www)
            {
                Dispose();
            }
            else
            {
                backup.DisposeEx();
            }
        }
示例#6
0
        private IEnumerator LoadWWW(string url, bool dispose, Action <WWW> callback)
        {
            WWW www = CreateWWW(url);

            yield return(www);

            string err = www.error;

            if (err.IsNotEmpty())
            {
                log.Warn("{0}: {1} ({2})", err, www.url, url);
                callback(null);
            }
            else
            {
//				PlatformMethods.inst.SetNoBackupFlag(encoded, version);
                callback(www);
            }
            if (dispose)
            {
                www.DisposeEx();
            }
        }