Değerli okurlarımız, bu makalemizde sizlere Unity oyun motoru ile gösterdiğimiz hedefe önündeki engelleri aşarak ulaşan bir yapay zeka yapacağız. Ama öncelikle şunu belirtmeliyim ki bu yazıdan yararlanabilmeniz için önceden aşağıdaki konulara hakim olmalısınız. Çünkü bu makalemizde bu kısımlara detaylı bir şekilde değinilmeyecektir.

  • Unity kurulumu
  • Unity ile yeni bir proje açmak
  • Unity’de C# script temelleri
  • Unity arayüzüne hakimiyet

Eğer bu konulara hakimseniz hemen makalemize başlayalım. Bunun için hemen yeni bir Unity projesi açalım.

 

Öncelikle Scene’inimizi düzenleyelim. Öncelik bir zemin yapalım. Bunun için ben “Quad” objesi kullanmayı seçtim. Bu “Quad” objesinin boyutlarını 50x50x50 yaptıktan sonra(istediğiniz boyutta olabilir. Sadece bu makalede 50x50x50 boyutunda quad kullandım.) Inspector sekmesinde objemizin adının sağında bulunan, sağında “Static”  yazan kutucuğu işaretliyoruz.

 

Daha sonra bu zemin objesinin üstüne engellerimiz ekleyelim. Engellerimizi eklerken dikkat edeceğimiz en önemli ve unutulan hususlardan biri bu engelleri “Static” yapmayı unutmaktır. Bundan ötürü objeleri “Static” olarak işaretlemeyi unutmayın.

Engellerimizi dizdikten sonra “Navigation” sekmesini açmamız gerek. Bunun için ekranın yukarısındaki seçeneklerden Window -> AI -> Navigation seçeneğini seçerek açabiliriz.

 

Açılan yeni sekmenin üstünde sırasıyla “Agents”, “Areas”, “Bake” ve “Object” adında 4 tane buton gözüküyor. Bunlardan “Bake” butonuna basalım ve karşımıza aşağıdaki gibi bir görüntü çıkacak.

Buradaki değişkenlerin ne işe yaradığına bu ders için değinmeyeceğim. Eğer o değişkenlerin ne işe yaradığını merak ediyorsanız, buradan İngilizce kaynağına ulaşabilirsiniz. Sağ altta bulunan “Bake” butonuna bastıktan sonra “Scene” sekmemizde şuna benzer bir görüntü ile karşılacağız.

Bu objeler üstündeki mavi alanlar yapay zekamızın gidebileceği yolları temsil ediyor. Bunların dışındaki yerlerde yapay zeka hareket edemez.

 

Yapay zekamızın gidebileceği yolları ayarladığımıza göre artık bu yapay zekaya sahip objemizi oluşturabiliriz. Bunun için ben basit bir küp kullanacağım. Siz istediğiniz modeli kullanabilirsiniz. Bundan sonra ise bize bir hedef gerek. Bu ders için başka bir küp yeterli olur.

Benim “Scene”imde kırmızı küp yapay zekamızı, mavi küp ise hedefimizi temsil ediyor. Şimdi Yapay zekaya sahip objemizi seçip Inspector sekmesine geçelim. Inspector sekmesinde “Add Component” yazan butona tıklayalım. Çıkan aramaya “Nav Mesh Agent” yazalım ve ekleyelim. Bu “Nav Mesh Agent” “component”ına sahip objeler yol bulma yapay zekasına sahip demektir. Şimdi yeni bir c# scripti oluşturup bu yapay zekaya sahip objemize atalım ve içine aşağıda yazanları yazalım.

Bu scripti kaydettikten sonra Unity’e geri dönelim ve yapay zekaya sahip objemizi seçelim. Yapay zekaya sahip objemizi seçtikten sonra “Inspector” sekmesinde kodumuzun olduğu “component”a gelelim ve orada yazan “Hedef” adındaki değişkene hedef olarak belirlediğimiz objeyi atayalım.

 

Eğer şimdiye kadar anlatılanlarda hata yapmadıysanız tebrikler! Artık kendi yolunu kendisi bulan bir oyun objesine sahipsiniz!

İşte sonuç:

Bu makalemizde engellerin sabit durduğu bir labirentte Unity ile yol bulmayı gösterdim. Engellerin hareket ettiği bir labirentte yapay zekamıza nasıl yol bulduracağımızı ilerideki makalelerimde görebilirsiniz. 🙂

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here