public IEnumerator TestTask() { var request = new TextureRequest(TestConstants.RemoteImageUrl, false); ITask <Texture2D> promise = request; Assert.AreEqual(request, promise); // Receive via callback Texture2D texture = null; var listener = new TaskListener <Texture2D>(); listener.OnFinished += (value) => texture = value; // Request promise.StartTask(listener); Assert.IsFalse(promise.IsFinished); Assert.IsFalse(request.IsFinished); // Wait till finish while (!promise.IsFinished) { Debug.Log("Progress: " + request.Progress); yield return(null); } Assert.IsTrue(promise.IsFinished); Assert.IsTrue(request.IsFinished); Assert.IsNotNull(request.Response); Assert.IsNotNull(texture); Assert.AreEqual(listener.Value, request.Response.TextureData); Assert.AreEqual(listener.Value, texture); }
public void GetSprite(string url, Action <Sprite> resultCallback) { var textureRequest = new TextureRequest().SelectAddress(url) .AddSuccesCallback(resultCallback) .Build(); SendRequest(textureRequest); }
protected virtual async Task ViewTokenInfo(string tokenInfoJson) { var nameValuePairs = new List <Tuple <string, string> >(); foreach (var item in JObject.Parse(tokenInfoJson)) { nameValuePairs.Add(new Tuple <string, string>(item.Key, item.Value.ToString())); } var imagesUri = nameValuePairs.Where((tuple) => tuple.Item1 == "picture").First().Item2; _view.MainInfo = nameValuePairs; var textureRequest = new TextureRequest(imagesUri); _view.MainImage = await textureRequest.RequestImage(); }
public IEnumerator Test() { // Load test texture TextureRequest req = new TextureRequest(Path.Combine(TestConstants.TestAssetPath, "Graphics/UI/texture0.jpg"));//0.jpg")); var listener = new TaskListener <IWebRequest>(); req.Request(listener); while (!req.IsFinished) { yield return(null); } Assert.IsNotNull(listener.Value); Assert.IsNotNull(listener.Value.Response); var loadedTexture = listener.Value.Response.TextureData; Assert.IsNotNull(loadedTexture); var env = GraphicTestEnvironment.Create(); var root = env.CreateRoot(null); var texture = root.CreateChild <UguiTexture>("texture"); texture.Texture = loadedTexture; texture.Width = 400; texture.Height = 400; texture.FillTexture(); while (env.IsRunning) { if (Input.GetKeyDown(KeyCode.Minus)) { texture.Width -= 100; texture.Height += 100; texture.FillTexture(); } else if (Input.GetKeyDown(KeyCode.Equals)) { texture.Width += 100; texture.Height -= 100; texture.FillTexture(); } yield return(null); } }
public IEnumerator TestNonReadable() { var request = new TextureRequest(TestConstants.RemoteImageUrl); request.Request(); while (!request.IsFinished) { Debug.Log("Progress: " + request.Progress); yield return(null); } Assert.IsTrue(request.Response.IsSuccess); // Save to file var path = Path.Combine(TestConstants.TestAssetPath, "TextureRequestResult.jpg"); File.WriteAllBytes(path, request.Response.ByteData); Assert.IsFalse(request.Response.TextureData.isReadable); Debug.Log("Saved"); }
/// <summary> /// Download a texture at a given URL and call a method on completion, providing the DownloadTextureHandler /// </summary> /// <param name="url">The URL of the resource</param> /// <param name="completed">The completion callback</param> public void DownloadTexture(string url, Action <DownloadHandlerTexture> completed) { TextureRequest request; if (!m_TextureRequests.TryGetValue(url, out request)) { var webRequest = UnityWebRequest.Get(url); webRequest.downloadHandler = new DownloadHandlerTexture(); webRequest.SendWebRequest(); request = new TextureRequest { key = url, request = webRequest }; if (m_Requests.Count < k_MaxSimultaneousRequests) { m_TextureRequests.Add(url, request); } else { m_QueuedTextureRequests.Enqueue(request); } } request.completed += completed; }