Unity İnternetten Görsel Çekme

Unity İnternetten Görsel Çekme

Unity İnternetten Görsel Çekme

 Merhaba arkadaşlar bu yazımda sizlere Unity için Image komponentine internet üzerinden çektiğimiz herhangi bir görseli nasıl ekleyebileceğimizi anlatacağım iyi okumalar.

Mantığın Anlaşılması

İnternet üzerinden çektiğimiz veriyi Texture olarak çekebiliyoruz, çektiğimiz bu texture verisini Sprite a dönüştürüp oyun içinde - Unity de image komponentine ekleyeceğiz. Hadi kodlarımıza geçelim.

İnternetten Görsel Çekme Kodları

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class InternettenGorselCekme : MonoBehaviour
{
    [SerializeField] string gorselURL = ""; // görselin linkini girmemiz için gerekli olan string

    IEnumerator GorselCek(string gorselURL)
    {
        if (Application.internetReachability == NetworkReachability.NotReachable) // Burada internetin olup olmadığını kontrol ediyoruz.
        {
            Destroy(this.gameObject); // eğer internet yok ise Image komponentimizi siliyoruz
        }
        else
        {
            var www = new WWW(gorselURL); // görseli çekiyoruz.
            Debug.Log("Görsel indirmesi başlatıldı...");
            yield return www; // görseli çekiyoruz..
            if (string.IsNullOrEmpty(www.text)) // görsel çekilememiş ve boş ise 
            {
                Debug.Log("Görsel indirilirken sorun ile karşılaşıldı!"); // debug veriyoruz ve hata yazdırıyoruz.
            }
            else
            {
                Debug.Log("Görsel indirmesi başarılı."); // sorunsuz bir şekilde çekilmiş ise başarılı diye debug yazdırıyoruz
                Texture2D texture = new Texture2D(1, 1); // texture oluşturuyoruz
                www.LoadImageIntoTexture(texture); // internetten çektiğimiz veriyi texture a kaydediyoruz
                Sprite gorsel = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.one / 2); // yeni bir sprite oluşturuyoruz ve spritemıza texturemızı atıyoruz
                this.GetComponent().sprite = gorsel; // sprite ımızı görselimize eşitliyoruz ve görünmesini sağlıyoruz

            }
        }
    }

    private void Start()
    {
        StartCoroutine(GorselCek(gorselURL)); // görseli internetten çekmek için olan fonksiyonumuzu çekiyoruz
    }
}

Burada kodlarla beraber her şeyi açıkladım ancak merak ettiğiniz herhangi bir şey olursa aşağıdaki yorumlar kısmında sorabilirsiniz.

Görsel Çekilmeden Önce

Görsel Çekildikten Sonra

Not: Eğer ki komponentin boyutunun otomatik olarak çekilen görsele göre büyümesini istiyorsanız aşağıdaki kodu kullanabilirsiniz.

this.GetComponent().sizeDelta = new Vector2(texture.width, texture.height);