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://")) { } }
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(); }); } } }
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(); } ); } }
void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener) { if (assetUnitInfo.reference.StartsWith("http")) { listener.OnBeginRefering(); UnityAssetUtil.PickFromDownloadLink(assetUnitInfo.reference, new PrvtColl { listener = listener }); } }
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); } }
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; } } }
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(); }); }); } ); } }
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(); } }
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(); } } ); }
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(); } ); } }
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(); } }
void AssetReferer.ReferAsset(AssetUnitInfo assetUnitInfo, AssetReferenceListener listener) { clientReferer.ReferAsset(assetUnitInfo, new PrvtListener { clientListener = listener, helper = helper }); }