Пример #1
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     if (assetUnitInfo.reference.StartsWith("file:///"))
     {
         listener.OnBeginRefering();
         if (!assetUnitInfo.reference.EndsWith("/"))
         {
             ;
             UnityWebRequest www = new UnityWebRequest(assetUnitInfo.reference);
             NetworkUtil.ProcessWebRequest(www, (givenWWW) => {
                 if (string.IsNullOrEmpty(givenWWW.error))
                 {
                     listener.OnRawAssetContentObtained(givenWWW.downloadHandler.data, "");
                 }
                 listener.OnFinish();
             });
         }
         else
         {
             //whole repository
             listener.OnBasicIOObtained(new FileProtocolBasicIO {
                 auInfo = assetUnitInfo
             });
             listener.OnFinish();
         }
     }
     string[] assetRef = assetUnitInfo.reference.Split(':');
     if (System.Collections.CaseInsensitiveComparer.Equals(assetRef[0], "folder://"))
     {
     }
 }
Пример #2
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     string[] assetRef = assetUnitInfo.reference.Split(':');
     if (System.Collections.CaseInsensitiveComparer.Equals(assetRef[0], "github"))
     {
         listener.OnBeginRefering();
         //whole repository
         if (assetRef.Length == 2)
         {
             listener.OnBasicIOObtained(new GitHubAssetBasicIO {
                 parent = this, repositoryAddress = assetRef[1], auInfo = assetUnitInfo
             });
             listener.OnFinish();
         }
         if (assetRef.Length == 3)
         {
             var www = new UnityWebRequest(addressBase + assetRef[1] + assetRef[2]);
             NetworkUtil.ProcessWebRequest(www, (givenWWW) => {
                 if (string.IsNullOrEmpty(givenWWW.error))
                 {
                     listener.OnRawAssetContentObtained(givenWWW.downloadHandler.data, assetRef[2]);
                 }
                 listener.OnFinish();
             });
         }
     }
 }
Пример #3
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     if (assetUnitInfo.reference.StartsWith("unityab:"))
     {
         listener.OnBeginRefering();
         var json  = assetUnitInfo.reference.Substring(8);
         var abRef = RequiredFuncs.FromJson <AssetBundleRef>(json);
         NetworkUtil.ProcessWebRequest(
             UnityWebRequestAssetBundle.GetAssetBundle(abRef.uri, 0),
             (www) => {
             var bundle = DownloadHandlerAssetBundle.GetContent(www);
             if (string.IsNullOrEmpty(abRef.assetPath))
             {
                 //stub
             }
             else
             {
                 var bundleAsset = bundle.LoadAsset(abRef.assetPath);
                 if (bundleAsset != null)
                 {
                     listener.OnObjectObtained(bundleAsset, abRef.assetPath);
                 }
             }
             listener.OnFinish();
         }
             );
     }
 }
Пример #4
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     if (assetUnitInfo.reference.StartsWith("http"))
     {
         listener.OnBeginRefering();
         UnityAssetUtil.PickFromDownloadLink(assetUnitInfo.reference, new PrvtColl {
             listener = listener
         });
     }
 }
Пример #5
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     if (assetUnitInfo.reference.StartsWith("platform:"))
     {
         var json        = assetUnitInfo.reference.Substring(9);
         var pRef        = RequiredFuncs.FromJson <PlatformRef>(json);
         var auInfoClone = AssetUtils.CloneAssetRef(assetUnitInfo);
         auInfoClone.reference = pRef.defaultBuild;
         baseReferer.assetReferer.ReferAsset(auInfoClone, listener);
     }
 }
Пример #6
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     foreach (var referer in referers)
     {
         var listenerWrapper = new PrvtAssetReferenceListener {
             clientListener = listener
         };
         referer.ReferAsset(assetUnitInfo, listenerWrapper);
         if (listenerWrapper.didBegin)
         {
             return;
         }
     }
 }
Пример #7
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     if (string.IsNullOrEmpty(clientID) || string.IsNullOrEmpty(clientSecret))
     {
         return;
     }
     //asume like "deviantart:{GUID}"
     string[] assetRef = assetUnitInfo.reference.Split(':');
     if (System.Collections.CaseInsensitiveComparer.Equals(assetRef[0], "deviantart"))
     {
         listener.OnBeginRefering();
         var webReq = new UnityWebRequest("https://www.deviantart.com/oauth2/token?grant_type=client_credentials&client_id=" + clientID + "&client_secret=" + clientSecret);
         webReq.downloadHandler = new DownloadHandlerBuffer();
         NetworkUtil.ProcessWebRequest(
             webReq,
             (www) => {
             if (www.error != null)
             {
                 listener.OnFinish();
                 return;
             }
             var token               = JsonUtility.FromJson <DeviantArtToken>(www.downloadHandler.text);
             var webReq2             = new UnityWebRequest("https://www.deviantart.com/api/v1/oauth2/deviation/download/" + assetRef[1] + "?token=" + token.access_token);
             webReq2.downloadHandler = new DownloadHandlerBuffer();
             NetworkUtil.ProcessWebRequest(
                 webReq2,
                 (www2) => {
                 if (www2.error != null)
                 {
                     listener.OnFinish();
                     return;
                 }
                 var dl = JsonUtility.FromJson <DeviantArtDownload>(www2.downloadHandler.text);
                 NetworkUtil.ProcessWebRequest(UnityWebRequestTexture.GetTexture(dl.src), (www3) => {
                     if (www3.error != null)
                     {
                         listener.OnFinish();
                         return;
                     }
                     Debug.Log("Deviant art texture obtained.");
                     var texture = DownloadHandlerTexture.GetContent(www3);
                     listener.OnAssetContentObtained(texture, "");
                     listener.OnFinish();
                 });
             });
         }
             );
     }
 }
Пример #8
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     if (assetUnitInfo.reference.Contains("agas.zip"))
     {
         listener.OnBeginRefering();
         var www = new UnityWebRequest(assetUnitInfo.reference);
         NetworkUtil.ProcessWebRequest(www, (doneWWW) => {
             listener.OnStdArchiveObtained(doneWWW.downloadHandler.data);
             listener.OnFinish();
         });
     }
     else
     {
         listener.OnFinish();
     }
 }
Пример #9
0
    void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
    {
        var refElements = assetUnitInfo.reference.Split(':');

        if (string.Compare(refElements[0], "GSearch", true) != 0)
        {
            return;
        }
        listener.OnBeginRefering();
        var chache = caches.Find((cache) => string.Compare(cache.auInfo.reference, assetUnitInfo.reference, true) == 0);

        if (chache != null)
        {
            listener.OnAssetContentObtained(chache.sprite, "");
            listener.OnFinish();
            return;
        }
        NetworkUtil.ProcessWebRequest(
            new UnityWebRequest("https://www.googleapis.com/customsearch/v1?key=" + "&searchType=image&q=" + refElements[1]),
            (doneWWW1) => {
            if (doneWWW1.error == null)
            {
                var result = JsonUtility.FromJson <GoogleImageSearchResult>(doneWWW1.downloadHandler.text);
                NetworkUtil.ProcessWebRequest(
                    new UnityWebRequest(result.items[0].image.thumbnailLink),
                    (doneWWW2) => {
                    if (doneWWW2.error == null)
                    {
                        var texture = DownloadHandlerTexture.GetContent(doneWWW2);
                        var sprite  = Sprite.Create(texture, new Rect(Vector2.zero, new Vector2(texture.width, texture.height)), new Vector2(0.5f, 0.5f), System.Math.Max(texture.width, texture.height));
                        caches.Add(new SearchCache {
                            auInfo = assetUnitInfo, sprite = sprite
                        });
                        listener.OnAssetContentObtained(sprite, "");
                    }
                    listener.OnFinish();
                }
                    );
            }
            else
            {
                listener.OnFinish();
            }
        }
            );
    }
Пример #10
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     string[] assetRefParts = assetUnitInfo.reference.Split(':');
     if (System.Collections.CaseInsensitiveComparer.Equals(assetRefParts[0], "soundcloud"))
     {
         listener.OnBeginRefering();
         NetworkUtil.ProcessWebRequest(
             new UnityWebRequest("https://api.soundcloud.com/tracks/" + assetRefParts[1] + "/download?client_id=" + clientID),
             (www) => {
             if (www.error == null)
             {
                 listener.OnAssetContentObtained(DownloadHandlerAudioClip.GetContent(www), "");
             }
             listener.OnFinish();
         }
             );
     }
 }
Пример #11
0
        void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
        {
            var strings = assetUnitInfo.reference.Split(' ');

            if (strings[0].EndsWith(".git"))
            {
                var vcsRef = new VersionControlSystemRef {
                    repository = strings[0], systemName = "git"
                };
                if (strings.Length > 1)
                {
                    vcsRef.targetPath = strings[1];
                }
                listener.OnBeginRefering();
                listener.OnVCSReferenceObtained(vcsRef);
                listener.OnFinish();
            }
        }
Пример #12
0
 void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener)
 {
     clientReferer.ReferAsset(assetUnitInfo, new PrvtListener {
         clientListener = listener, helper = helper
     });
 }