Unity ile Oyun Programlamaya Giriş -5

Unity ile Cisimlere Yapay Zeka Kazandırma

Unity ile oluşturulan 3 boyutlu cisimler normal olarak kullanıcının yönlendirmesiyle hareket ederler bunlar genel olarak First Person Controller olarak adlandırılırlar. Bunun dışında cisimlere farklı şekillerde hareket kazandırmak için cisimlere Animasyonlar hazırlanabilir ancak bu yöntemlerin hiç birinde cisimler Akıllı hareket etmezler.

Cisimlere akıllı hareket kazandırmak için javascript yazarak cisimlere belirli nesnelere karşı eğitim verebiliriz.Örneğin oluşturulan bir robot random olarak çıkan yemlerin üzerine doğru hareket etmesi akıllı bir hareket olarak adlandırılabilir.

Bunun için javaScript koduyla öncellikle Random olarak hareket uzayında yemler oluşturulup robotu buna doğru yönlendireceğiz. Şimdi yeme doğru giden cisim için yazılan javascript kodu verilecek.

this.transform.LookAt(bonus.position);

if(mesafe>10)

durum=true;

else

durum=false;

if(durum)

{

animation.CrossFade(“kos”);

transform.Translate(new Vector3(0,0,1));

}

Else

{

animation.CrossFade(“yuru”);

transform.Translate(new Vector3(0,0,.1));

}

mesafe=Vector3.Distance(transform.position,bonus.position);

status.text=”Mesafe : ” + mesafe;

if(mesafe<=2)

{

bonus.transform.position=new Vector3(Random.Range(0,100),0,Random.Range(0,100));

}

 

Bu javascript kodunu incelediğimiz zaman random olarak bir koordinat oluşturulup oraya yem atanıyor. Daha sonra bu kordinati robotun gideceği yön olarak gösteriyoruz

(this.transform.LookAt(bonus.position); ) .

Ardından uygulamayı çalıştırdığımız zaman robot gerçekten de yeme doğru hareket ettiğini göreceğiz.

 

 

 

 

 

 

 

Unity de Network

Unity platformunda network ile ilgili işlemler Network sınıfı altında toplanmıştır. Ağda meydana gelen bir çok olayda önceden network sınıfında belirlenmiş fonksiyonlar koşar. Bu fonsiyonların implementesini biz gerektiği şekilde yaparız.

OnPlayerConnected : Server tarafında çağrılır .Yeni bir bilgisayar oyuna girdiğinde bu fonksiyon çağrılır.

OnServerInitialized :Server kurulumu tamamlandığında çağrılır. Serverda çağrılır.

OnConnectedToServer :Client tarafında çağrılır.Client başarıyla server a bağlandıysa  çağrılır.

OnPlayerDisconnected: Server tarafında çağrılan bu fonksiyonda bir oyuncunun çıkması durumunda çalışır.

OnDisconnectedFromServer: Client tarafında serverla bağlantı koptuğunda server tarafında ise bağlantı sonlandığında çağrılır.

OnFailedToConnect: Client tarafında bağlantı denemesinin başarısız olduğunda çalışır

OnFailedToConnectToMasterServer:Client da yada serverda master server a bağlanmada bir hata olması durumunda çağrılır.

OnNetworkInstantiate:Herhangi bir obje (nesne) networkta Network.Instantiate fonksiyonu ile kopyalandığında çağrılır.

OnSerializeNetworkView:Network view tarafından takip edilen nesnelerin durumlarını senkronize ederken kullanacağımız fonksiyondur. Bu fonfsiyonun içinde nesnenin yeni durumunun alınması ve gönderilmesi işlemleri yapılabilir.

Bu fonksiyonların kullanımı ise yazdığımız script türüne göre syntax da küçük değişiklik olmakla birlikte genel olarak bu isimlerde fonksiyon yazarak içini doldurulması şeklindedir.

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi
İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

Mehmet Salih Deveci

I am Founder of IT Tutorial and Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience. I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource. I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks. I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients. If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress mehmetsalih.deveci@outlook.com. -                                                                                                                                                                                                                                                 - Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için  mehmetsalih.deveci@outlook.com a mail atabilirsiniz.

5 thoughts on “Unity ile Oyun Programlamaya Giriş -5

  • February 3, 2011 at 3:57 pm
    Permalink

    Merhaba Mehmet Bey,

    Unity oyun motoru ile bir MMORPG yapmanın püf noktalarını verebilir misiniz? Yani bu motorla MMORPG yapmak için tam olarak neler yapmamız gerekiyor, hangi özellikleri kullanacağız, bir sunucuya nasıl bağlanacağız; gibi soruları cevaplayabilirseniz svinirim.

    Reply
    • February 3, 2011 at 4:43 pm
      Permalink

      Merhaba Selman Bey ben Unity oyun motorunda dönem projesinde bir oyun yaptım o kadar.Ancak oyunu yaparken MMORPG yapmadığım için cevap veremeyeceğim. Size iyi çalışmalar…

      Reply
  • February 3, 2011 at 5:24 pm
    Permalink

    Peki o zaman, burada Unity hakkında yazdığınız bilgiler için de teşekkür ederim. Size de iyi çalışmalar ve iyi geceler…

    Reply
  • May 9, 2011 at 8:57 am
    Permalink

    Merhabalar Mehmet bey,

    sitenizde verdiğiniz bilgilerden dolayı çok teşekkürler. Yalnız bir sorum olacak..

    bir inşaat projesi için unity ile bir tanıtım yapmak istiyorum..

    arazi yollar araclar evler hazır.. fakat ben burada site içindeki yollarda random hareket eden serit değistiren araclar yapmak istiyorum..

    nasıl bir yapay zeka hazırlayacagımı bilmiyorum.. belirli bir path ustunde olmayacagı için hareket de veremedim..

    eger aklınıza bir fikir bunu dinlemeyi cok isterim

    Saygılarımla

    Reply
    • May 9, 2011 at 9:42 am
      Permalink

      Merhabalar Soner bey… Tekerleği kendin icat etmektense bir şeyler eklemek daha iyi mantığıyla size Unity sitesindeki aracı kullanmanızı tavsiye ederim. Orda yol boyunca hareket eden bir araç görmüştüm hatta arkadaşların onu alıp kullandığını biliyorum. Sizde ondan yararlanabilirsiniz. Zaten araçlar Random hareket edeceği için yapay zekaya da ihtiyaç duymazlarki. Bir animasyon hazırlamanız bunun için yeterlidir.

      Reply