WWDC19: RealityKit ile Uygulama Geliştirme

RealityKit ile nasıl uygulama yazabilirim? Gerekli aşamaları sizler için hazırladık.

Ege Sucu
TurkishKit
4 min readJun 17, 2019

--

Merhaba sevgili TurkishKit okuyucuları. Yepyeni bir yazımızla sizlerleyiz. Bu yazıda Apple’ın bu sene tanıttığı RealityKit kütüphanesini inceleyip Apple’ın bizlere örnek olarak hazırladığı uygulamayı inceleyeceğiz. WWDC19 boyunca katıldığımız oturumları sizler için en güncel, kapsamlı ve detaylı olarak özetliyoruz. Bizi takipte kalarak WWDC19 hakkındaki pek çok içeriği Türkçe okuyabilirsiniz. O zaman başlayalım.

RealityKit Nedir?

RealityKit Apple’ın bu sene tanıttığı ve Augmented Reality odaklı kütüphanesinin ismidir. RealityKit sayesinde 3 boyutlu objelerinizi kolay bir şekilde uygulamanıza aktarabileceksiniz.

Nasıl Kullanılır?

İlk adım uygulamanıza Öncelikle uygulamanıza RealityKit kütüphanesini eklemek! Daha sonra objeyi loadModel ile uygulamanıza dahil etmeniz gerekiyor. Bundan sonra ise onu bir AnchorEntity olarak sahneye ekleyebilirsiniz. Siz ekrana koyduktan sonra RealityKit objenizi düzenli aralıklarla takip eder.

Objeyi Uygulamaya Ekleme

Öncelikle 3 boyutlu objelerinizi uygulamaya eklemeniz gerekiyor. Apple burada tanıttığı oyun için kartları ekliyor.

Oyunda 8 farklı kart var ve çiftlerini bulmanız gerekiyor. Mahjong oyununu bilenlere bu oyun tanıdık gelecektir.

8 farklı kart için 16 tane model eklememiz lazım. Ancak 16 modeli tek tek yüklemenin bir anlamı yok. Hele ki bu modellerin 8 tanesinin diğer 8 i ile aynı olacağını düşünürsek. Apple burada clone() isimli bir fonksiyon yaratıyor. Bu sayede objeleri kolayca klonlayabiliyorsunuz.

İlk önce kartlar kapalı iken duracak şekilde ekliyoruz. Bunun için bir adet for döngüsü yaratıyoruz ve elimizdeki listeyi dolduruyoruz.

Daha sonra kartlarımızı yaratacağız ancak birer klonları ile. Bunun için bir kart listesi oluşturup içerisine ekliyoruz.

Kartları masaya Yerleştirme

Karlar 4x4 matrix ile yerleşecek

Şimdi bunları alana yerleştirmemiz gerekiyor. Önümüzde yer alacak masaya yerleştirmek istiyoruz ve 20m2 alana yerleştireceğiz. Aralarında da belirli bir mesafe gireceğiz. İsterseniz bu mesafe ile oynayabilirsiniz. Ayrıca kartların karışık yerleşmesi de önemli.

Animasyon Ekleme

Apple bu sene animasyon eklemeyi aşırı kolaylaştırmış durumda. RealityKit de bundan nasibini almış vaziyette. Öncelikle kartımıza bir transform efekti uygulayacağız, olduğu yerde yukarı dönmesini sağlayacağız ve bunu kartımıza ekleyeceğiz.

Objeyi Uygulamaya Verimli Yükleme

Kartlara koyacağımız objeler küçük olsalar da birden fazla obje yükleme yapacağız. Bu noktada Apple’ın sağladığı asenkron yüklemeyi kullanmamız çok önemli. Çünkü Augmented Reality objeleri tek tek yüklenirken uygulamanız donar. Bu donma işlemini gidermek için arkaplanda yükleme yapmalıyız ki uygulamamıza objeler uygulama çalıştıkça eklensin ve uygulamamız takılmasın. Bunun için yükleme kodunu ufak bir modifikasyon ile değiştireceğiz.

Objeleri Gizleme

Kullanıcı telefonu aşağı indirdiğinde objeler hala kartların altında gözükebiliyor.

Kartlar objelere eklendi, ancak kullanıcı telefonunu yere indirdiğinde kartın altında gizli objeyi görebiliyor. Bunu saklamak için bir adet saydam kutu yaratacağız ve bu kutu objeyi şeffaf renkli bir kutu ile saklayacak(kameradan silmiş gibi görünecek)

Bu sayede kartların altı artık görünmüyor.

Kartları Yönetme

Eklediğimiz kartları yönetmemiz gerekiyor. Böylece kart gizli mi, değil mi anlayabiliriz. Apple burada kartlar için bir model oluşturuyor.

Daha sonra özel bir sınıf yaratıyor ve artık kartları bir Entity olarak tanımlıyor. Bu sayede RealityKit kartları tanıyabiliyor.

Bundan sonra CardEntity için bir eklenti yazıyor ve buraya kartın animasyonunu ekliyor.

Son olarak bir gesture recognizer koyarak hangi karta basıldığını anlıyor ve ona göre kartı döndürüyor.

(Opsiyonel) Multiplayer

Eğer oyununuz Multiplayer olsun istiyorsanız Apple bunun için bir kütüphane sunuyor. Daha önce ARKit 3 yazısında okuduğunuz Ortaklaşa sahne özelliğini kullanarak cihazlar arası veri eşleyebiliyorsunuz. Aktif etmek için:

  • import MultiPeerConnectivity kütüphanesini kurmalısınız.
  • Oyuna bir PeerID vermelisiniz, Bu ID cihazların birbiri ile eşleşmesine yarayacaktır.
  • Bir oturum yaratmalısınız. Bu oturumun encrypted olması gerekiyor.
  • Hangi oyuncunun sırası ise ona göre ayarlama yapmanız gerekiyor.

Kodunu aşağıda görebilirsiniz.

Son olarak konfigürasyon içinde Collab özelliğini aktif etmeniz gerekiyor.

Bir yazının daha sonuna geldik. RealityKit hakkında ne düşünüyorsunuz? Yorumlarda belirtebilirsiniz. Hepinize iyi kodlamalar! 🙂

Bizi daha yakından takip etmek istiyorsanız, sosyal medya hesaplarımıza aşağıdan ulaşabilirsiniz!

Twitter | Instagram | Facebook

--

--