Unity UnityWebRequest Nedir?

UnityWebRequest

 Hepinize merhaba arkadaşlar bu yazımda sizlere daha önceden anlattığım bir konunun daha güncel halini anlatacağım. Bir kaç yazı öncesinde Unity WWW kullanmaktan bahsetmiştim ve WWW ile internet üzerinden görsel çektiğimiz bir kod bile paylaşmıştım ancak kodları yazdıktan sonra fark etmiştim ki WWW ile yazdığım kodlar hep "[OBSOLOTE]" değer olarak tanımlanmam isteniyordu. 

OBSOLOTE ile ilgili ufak bir bilgi vereyim, kullanılması önerilmeyen ve artık güncel olmayan fonksiyonlar için bu uyarı genel anlamda veriliyor c# dilinde.

Neyse bende tabi durmadım ve bu önerilmeyen kodun alternatifi için Unity dokümantasyonlarını karıştırdım ve WWW'nin karşılığı olarak karşıma UnityWebRequest çıktı ve bunu hemen sizlerle paylaşmak istedim, iyi okumalar.

UnityWebRequest Nedir? 

Unity WebRequest, oyun içerisinde herhangi bir internet sitesine bağlanabilmemizi sağlayan hazır kütüphanedir.

Bu kütüphane sayesinde oyunlarımızda Web Servislerini kullanarak bir çok şey yapabiliriz. Kullanıcı kaydından tutun da sıralama tabloları hazırlamak gibi hatta internet üzerinden texturelar indirebilir ve daha bir çok şey amacı ile kullanabilirsiniz.

JSON dosyalarını okuyabilir, kaydedebilir, MYSQL ile veri yönetimi yapabilirsiniz. Bu kütüphane ile yapabilecekleriniz yazılım bilgileriniz ve hayal gücünüze kalmış diyebilirim.

UnityWebRequest Post İşlemi

UnityWebRequest ile Post işlemi WWW kullanmak ile neredeyse aynı o yüzden Web ile ilgili olan kısmını burada yazmayacağım ancak güncel halinin kodlarını paylaşım burada açıklayacağım.

IEnumerator _VeriPostEt() // Bir adet numerator oluşturuyoruz
    {
        yield return new WaitForEndOfFrame(); // son frame e gelmesini bekliyoruz
        WWWForm _wwwForm = new WWWForm(); // bir adet www formu oluşturuyoruz
        _wwwForm.AddField("veri", "veri"); // oluşturduğumuz forma göndermek istediğimiz veriyi ekliyoruz sol taraf alan taraftaki değer, sağ taraf ise yolladığımız değer

        UnityWebRequest veriGonder = UnityWebRequest.Post("http://postedilecekveriurl", _wwwForm); // webrequest oluşturuyoruz, sol taraf gidecek url, sağ taraf ise formumuz
        yield return veriGonder.SendWebRequest(); // verimizi gönderiyoruz
     
            Debug.Log(veriGonder.downloadHandler.text.ToString()); // siteden gelen veriyi çekiyoruz.
        
    }

Evet yukarıdaki gibi POST işlemi yapabiliriz.

UnityWebRequest Siteden Veri Okuma İşlemi

Herhangi bir siteden veri okumak istiyorsak da bunu aşağıdaki kodlardaki gibi yapabilirsiniz.

IEnumerator VeriCek() // Veri çekmek için bir numerator fonksiyonu oluşturuyoruz
    {
        UnityWebRequest _veriCek = UnityWebRequest.Get("http://urhoba.net"); // verinin çekileceği siteyi girerek WebRequest oluşturuyoruz
        yield return _veriCek.SendWebRequest(); // veri çekmek için istek gönderiyoruz
        var cekilenVeri = veriCek.downloadHandler.text.ToString(); // siteden gelen veriyi bir değişkene atıyoruz.
   
    }

Evet arkadaşlar bu yazımızında böylelikle sonuna geliyoruz, merak ettiğiniz herhangi bir şey olursa veya bu konu ile ilgili bir problem yaşıyorsanız aşağıda yorum olarak bildirebilirsiniz.

Not: Çektiğiniz verileri parse ederek (ayrıştırarak) oyununuzda istediğiniz gibi kullanabilirsiniz.