Unity3D ile PHP Kullanarak MySQL Veritabanına Veri Gönderimi

Unity3D ile PHP Kullanarak MySQL Veritabanına Veri Gönderimi
Mart 07 17:47 2014 Bu yazıyı yazdır

Merhaba,

Geçtiğimiz haftalarda Unity3D ile ilgili temel bazı örnekleri basit anlatımlarla paylaşmıştım. Genel itibariyle kullanıcı INPUT’ları ile gerçekleştirilen veri akışı, multiplatform oluşturma isteği ile birleştiğinde online bir bağlantı olmaksızın düşünülemez. Dolayısıyla bizim de Unity3D oyun motoru kullanılarak online bir veritabanına veri gönderme işlemini yapıyor olmamız gerekiyor. Neticede geliştirdiğiniz oyunlarda, kullanıcının high score bilgisini başkalarıyla karşılaştırmak istemesi çok doğal bir talep.

Bu yazıda hayali bir oyunumuz olacak. Bu oyun, oynanmış ve score bilgisinin gösterildiği sahneye yönlenmiş olsun. Tam da bu sahneyi kullanarak PHP programlama dili ile Unity3D oyun motoru arasında veri POST işlemini, temsili high score bilgisini gönderip MySQL veritabanına kaydetmek suretiyle gerçekleştireceğiz.

Bunun için ihtiyacımız olan dijital ortam ve araçları listeleyelim:

  • Unity3D Oyun motorunda oluşturduğumuz boş bir sahne ve Main Camera
  • PHP sayfaya POST edilme işlemini gerçekleştirecek olan JavaScript dosya
  • İçerisinde highscore isimli bir tablo bulunan MySQL veritabanı
  • PHP programlama dilini çalıştırabileceğimiz bir sunucu

Öncelikle oluşturduğumuz yeni proje içerisinde default olarak gelen sahnede bulunan Main Camera nesnesine JavaScript Unity kodlarını ekleyeceğiz.

Yukarıda verilen kodlar, temsili oyunun score bilgisini gonder.php sayfasına MySQL veritabanına eklemek üzere göndermektedir. Dış bağlantıyı sağlayacağımız WWWForm nesnesi, form değişken adı ile türetilmiştir. Türetilen yeni WWWForm nesnesi olan form, action özelliği olarak gonder değerini almaktadır. Bu değer, PHP sayfadaki çalışacak işlemleri tetikleyecek olan koşulu oluşturmak için kullanılacaktır. Score bilgisinin gönderileceği input ise, score özelliğinin değeri, gonder fonksiyonu parametresi olan data değişken değerini kullanarak gönderilecektir. Oluşturduğumuz url isimli değişken ise, hedef sayfayı belirtmektedir.

Tabi bütün bunların olması için, oluşturduğumuz bu JavaScript dosyasını Main Camera nesnesinin Inspector alanına sürüklenip eklenmesi gerekmektedir. Bu sürükleme işlemini, ilgili cisim Inspector kısmında bulunan Add Component alanından da yapabileceğimizi unutmayalım.

Bütün bu işlemlerin ardından, PHP dosyasına veri POST işlemi gerçekleşeceğinden dolayı öncelikle MySQL veritabanında highscore isimli tablomuzu oluşturalım:

high

Artık veritabanımız da hazır olduğuna göre PHP sayfamızı oluşturalım:

Bu andan itibaren, sahnemizi çalıştırdığımızda MySQL veritabanına, gonder fonksiyonuna eklenen username ve score parametre değerleri olan 999 ve phpservisi eklenecektir. baglanti.js dosyasında AddField parametrelerinde POST edilen username ve score değişkenlerini $_REQUEST global değişkeni ile alarak $score ve $username değişkenleri olarak alıyoruz. SQL içerisinde highscore tablosuna mysql_query fonksiyonu yardımıyla ekliyoruz.

sonuc

Dolayısıyla Unity3D oyun motorunda PHP programlama dilini kullanarak JavaScript üzerinden gelen dataları MySQL veritabanına eklemiş olduk. Bu yazının yararlı olmasını diliyorum. Siz de kendi projenizde örnek basit bir oyun yapımı gerçekleştirin. Bu oyun içerisinde iki adet sahne olsun. Veri POST işlemini pratikte gerçekleştirip mantığını ve kodlarını kavrayıp, gerçek bir oyun içerisinde high score göndererek multi platform oluşturabilirsiniz.

Sonraki yazılarda görüşmek dileğiyle!

A.Gökhan, M.Sc.
A.Gökhan, M.Sc.

My Name is A. Gokhan SATMAN, and I am a software engineer, Author and game developer. gokhansatman.com

Daha fazla yazı görüntüle
Yorum yaz

1 Yorum

  1. mustafa
    Aralık 18, 00:57 #1 mustafa

    Merhaba gerçekten çok yararlı oldu score bilgilerini gönderdigimizde aynı kullanıcı adı varsa bir hata mesajı nasıl gönderebiliriz veya otomatik olarak bir guest1 ,guest2 şeklinde kullanıcı nasıl oluşturabiliriz

    Reply to this comment

Yorum ekle

Your data will be safe! Your e-mail address will not be published. Also other data will not be shared with third person.
All fields are required.

*