Unityde Cloud DB Kullanımı 2/3

Alihan98ersoy
Huawei Developers - Türkiye
2 min readAug 25, 2021

Sizlere bir önceki yazımda HMS eklentisini Unity’e nasıl entegre edebileceğimizi göstermiştim. Bu yazımda da Cloud DB’yi Unityde daha detaylı bir şekilde nasıl kullanabileceğimizi anlatacağım.

Hatırlayalım: Önceki yazımda object Type name ‘i BookInfo ve Cloud DB Zone Name ‘i QuickStartDemo olarak belirlemiştik. BookInfo nesnem:

Hadi başlayalım,

Öncelikle demo sahnenin içerisindeki CloudDBDemo.cs script’ini incelememizde fayda var. Gerekli tanımlamaları yapıyoruz.

Sonrasında oluşturduğumuz cloudDBManager nesnemizi initialize ediyoruz ve tablodaki değerleri çekerken başarılı olursa yada başarısız olursa ne yapmasını istediğimizi tanımlıyoruz.

cloudDBManager nesnemizi initialize etmeden giriş yapmış olmamız gerekiyor. Sonrasında ise objectType oluşturmamız, CloudZone’u açmamız ve network’ü etkinleştirmemiz gerekiyor.

Tablodamuzdaki verileri çekmek için ExecuteQuery metodunu kullanmamız gerekiyor. mCloudQuery bizim query bilgilerimiz ve where ile hangi tablodan çekmek istediğmizi belirtiyoruz.

mCloudQuerry de mCloudQuery = CloudDBZoneQuery.Where(new AndroidJavaClass(GameObjectTypeClass)).EqualTo(“id”,1); ile id’si 1 e eşit olan BookInfoları çek şeklinde koşul belirtebiliriz. Daha fazla koşul için dökümanı inceleyebilirsiniz.

Fark Ettiyseniz “CLOUDDBZONE_LOCAL_ONLY” yani şuan sadece localdeki datayı çekiyoruz. Veriyi buluttan almak için “CLOUDDBZONE_CLOUD_CACHE” ile değiştirmeliyiz.

Tablodamuza veri eklemek veya verileri güncellemek için ExecuteUpsert metodunu kullanmamız gerekiyor.

ExecuteUpsert methodu hem tek bir BookInfo nesnesi hemde liste halinde alabiliyor böylelikle hem tek hemde birden fazla nesneyi tabloya ekleyebiliyor yada tabloda güncelleyebiliyoruz.

Tablodamuzdaki verileri silmek için ise ExecuteDelete metodunu kullanmamız gerekiyor.

Peki diyelimki başka bir kullanıcı database’i güncelledi. Biz bunu gerçek zamanlı olarak yakalayabiliyor muyuz? Evet Cloud DB’nin realtime özelliği ile databasedeki değişimleri gerçek zamanlı olarak yakalayabiliyoruz. Bir sonraki yazımda daha detaylı anlatacağım ama örnek vermek gerekirse, çok oyunculu 3 taş oyunu yaptığımızı düşünelim. Oyun masaları var ve her masada iki oyuncu var. Dİğer oyuncu test masamızda hamle yaptığında diğer oyuncunun oyununda bu hamleyi yakalamayı ve hamleyi sahneye yansıtmasını istiyoruz.

SubscribeSnapshot ile tablomuzdaki değişiklikleri gerçek zamanlı olarak dinlemeye başlıyoruz. snapshotQuery ile oyun tablomuzu eğer test masamız ise koşuluyla dinlediğimizi ayarlıyoruz.

Özet olarak, bu makalede sizlere Unity için hazırlanmış HMS eklentisini kullanarak kısaca Cloud DB’yi nasıl kullanabileceğimizi anlattım. Daha detaylı kullanım için eklentinin içerisindeki demo sahneleri ve referansları incelemenizi tavsiye ediyorum. Bir sonraki yazımda Cloud DB’nin realtime özelliğini kullandığım çok oyunculu 3 taş oyunumu kısaca anlatacağım.

Referanslar:

Part1: Cloud DB’nin Unityde HMS Unity eklentisinin 2.0 Sürümüyle Entegrasyonu

Part3: Huawei Cloud DB ile Unityde Çok Oyunculu 3 Taş Oyunu

--

--