Mesajlar Etiketlendi ‘oyun’

Tekrar merhabalar,

Birkaç gün önce 2 yeni oyunumu daha Google Play‘e koydum ve bu oyunları sizlerle paylaşmak istedim. Eğer oyunlar ilginizi çekerse onlara birer şans vererek destek olmanız çok makbule geçer 🙂

İlk oyunum Mini Football. Bir önceki Unity NavMesh dersimde yapımını anlattığım basit futbol oyununun biraz daha geliştirilmiş ve Android’e uyarlanmış hali. Oyundaki amacımız topu rakipten önce 60 saniye boyunca ayağımızda tutmak ve bu esnada sahadaki engellere karşı da dikkatli olmak. Bu oyunda ilk defa Unity Ads kullandım, nasıl sonuç vereceğini bekleyip göreceğiz.

Link: https://play.google.com/store/apps/details?id=com.yasirkula.MiniFootball

Mini Football 1

İkinci oyunum ise Whack ’em Augmented Reality. İsminden anlaşılacağı üzere artırılmış gerçeklik (augmented reality) üzerine yaptığım bir çalışma. Oyunu Qualcomm Vuforia‘nın Unity pluginini kullanarak geliştirdim ve bu AR teknolojisinden fazlasıyla da memnun kaldım; bence bu alanda büyük bir potansiyel var. Oyundaki amacımız, karşımıza gelen kuru kafalara nişan alıp ateş ederek elimizden geldiğince onları geri püskürtmek.

Link: https://play.google.com/store/apps/details?id=com.yasirkula.whackem

Whack 'em

Hepinize merhabalar,

Bu dersimizde birlikte Unity 3D‘nin NavMesh sistemini kullanarak basit bir oyun yapmaya çalışacağız. NavMesh, yani Navigation sistemi Unity’nin bize pathfinding (yani bir objenin bir noktadan başka bir noktaya, yol üzerindeki engelleri göz önüne alarak bir rota çizmesi) için sunduğu bir araç.

Yapacağımız basit oyunda amacımız toplam 60 saniye boyunca topu ayağımızda tutabilmek. Tabi rakibimiz (AI) bizden önce davranırsa oyunu kaybediyoruz. Her ne kadar NavMesh sisteminden bahsedecek olsak da dersin büyük çoğunluğunda oyun mekaniklerini oluşturmakla uğraşacağız. NavMesh’e özellikle dersin başlarında yoğunlaşacak, sonra yeri gelince öğrendiğimiz bilgileri pratiğe vuracağız. Scriptlerimizi ise C# dilinde yazacağız. Eğer Unity konusunda hiç bilginiz yoksa bu derse başlamadan önce başlangıç dersleri okumak/izlemek isteyebilirsiniz. Özellikle kod yazma konusunda biraz da olsa tecrübeniz olması çok iyi olur.

Bu derste ilk defa animasyonlu gif resimler kullandım. Bu resimleri normal resimlerden ayırt etmek için köşelerine “gif” yazısı yerleştirdim. Ayrıca şunu da şimdiden belirteyim: bu ders uzun, çok uzun. Word’de yaklaşık 70 sayfa tuttu (bir kısmı resimler ve kodlardan oluşuyor ama yine de oldukça uzun bir yazı bekleyin). Derste oyunu her şeyiyle sıfırdan oluşturuyoruz. Buyurun size oyundan bir resim:

0

Oyunu Web Player üzerinden test etmek için tıklayın: http://yasirkula.freeiz.com/Projects/MiniFootball.html

Oyunu WebGL üzerinden test etmek için tıklayın: http://yasirkula.freeiz.com/Projects/MiniFootballWebGL/index.html

Örnek projeyi indirmek için tıklayın (Unity 5.3.1 öncesi sürümlerde sıkıntı çıkabilir): https://www.dropbox.com/s/g6y8dm0g99i1c9q/NavMesh%20Ders.zip?dl=0

Dersi PDF olarak indirmek isterseniz tıklayın (dikkat: gif resimler desteklenmez ve derste hatalı bir kısım olursa ben o hatayı site üzerinden güncellerken büyük ihtimalle pdf üzerinden güncellemem [hatalı kısım olduğunu sanmıyorum gerçi]): https://www.dropbox.com/s/9q7d5f4m9je1hin/Unity%20NavMesh%20Futbol%20Oyunu%20Ders.pdf?dl=0

O halde son gaz derse başlayalım…

(daha&helliip;)

Hepinize merhabalar,

Bu derste Unity 3D için basit editör scriptleri yazmayı göreceğiz. Unity’i editör scriptleri ile daha da işlevselleştirmek bazen karmaşık projelerinizde işinizi oldukça rahatlatabilir.

Editör scripti yazmak için Unity’nin gerçekten çok fazla fonksiyonu mevcut ve bunların hepsini ele almak benim için mümkün değil. Ben sıklıkla kullanılan fonksiyonlardan ve attribute‘lardan bahsetmeye çalışacağım. Bu derste OnInspectorGUI fonksiyonu ile ContextMenu ve MenuItem attribute’larını göreceğiz. Dersi C# ile anlatacağım ve bir miktar kod yazma bilginiz olduğunu varsayacağım.

Hazırsanız başlayalım…

(daha&helliip;)

Yine ve yeniden merhabalar,

Bu mini derste Unity 3D‘de Mathf.Lerp fonksiyonunu kullanarak istediğimiz bir işlemi “yumuşatmayı” göreceğiz. Yumuşatmadan kastım bir değerden başka bir değere geçişi küt diye değil de adım adım yapmak.

Örneğin kameraya oyuncuyu yumuşak bir şekilde takip etmesini söylerseniz, oyuncu ileri giderken kamera biraz geride kalır, oyuncu geri giderken kamera oyuncuya biraz daha yaklaşır. Böylece “yumuşak” bir animasyon ortaya çıkar. Veya bir objenin sürekli fare imlecine doğru hareket etmesini istiyorsunuz diyelim, bu iş için de Lerp’ten faydalanabilirsiniz. Lerp için daha pek çok örnek üretilebilir; bu daha çok sizin hayal gücünüze kalmış bir şey.

Hazırsanız başlayalım…

(daha&helliip;)

Hepinize merhabalar,

Bu yazımda, Unity‘de gyroscope (gyro) kullanımını göstermek için hazırladığım bir örneği sizinle paylaşacağım. Gyroscope dediğimiz şey telefonun 3D uzayda hangi rotation’a sahip olduğunu algılamamıza yarıyor. Gyroscope’un döndürdüğü veriden faydalanarak da kameraya eğim verebiliyoruz. Bu sayede oyuncu elindeki cihazı nereye çevirirse oyun içi kamera da o yöne dönüyor. Yani güzel bir fikir ile entegre edildiğinde gyroscope, oyununuzun piyasadaki diğer oyunlar arasından sıyrılmasına yardımcı olabilir.

Benim hazırladığım örnekte elimizde bir bombaatar silah (grenade launcher) bulunmakta ve biz gyroscope ile nereye bakarsak silah oraya ateş etmekte. Oyunda herhangi bir amacımız yok; buradaki asıl olay gyroscope’u iş üstünde görmek. İşte size örnekten bir resim:

GyroOrnek

Örneği indirmek için: https://www.dropbox.com/s/475zv4argw0ndgd/Gyro%20Ornek.zip?dl=0

Faydalandığım kaynak: http://blog.heyworks.com/how-to-write-gyroscope-controller-with-unity3d/

Detaylı açıklama için yazının devamını okuyabilirsiniz…

(daha&helliip;)

GÜNCELLEME (11.03.2018): Android Studio için talimatlar eklendi ve kod C#’a çevrildi.

Yine ve yeniden merhabalar,

Bu derste Eclipse ADT veya Android Studio kullanarak Unity Android için Java dilinde basit bir plugin yazacağız. Pluginimiz sayesinde ekranda Toast mesajları gösterebileceğiz (Toast dediğimiz şey, ekranın altında belirip kısa sürede yok olan bildirim mesajları oluyor):

resim1

Eğer programlama konusunda çok yeniyseniz bu ders sizin için olmayabilir. Ama yok ben Android’in tüm nimetlerinden faydalanmak için kendimi tamamen hazır hissediyorum diyorsanız o halde belki bu yazı ile başlangıç yapabilirsiniz.

NOT: Derste yaptığım herşeyi bir unitypackage‘da depoladım. İhtiyaç duyarsanız indirme linki: https://www.dropbox.com/s/are1b4fgra7q1gr/AndroidPluginOrnegi.unitypackage?dl=0

Hazırsanız derse başlayalım!

(daha&helliip;)

GÜNCELLEME (24.05.2018): 3 yeni metot eklendi.

Hepinize merhabalar,

Unity‘de oyun tasarlarken bol bol Debug.Log kullanır, nerede ne olduğunu veya bir hatanın neyden kaynaklandığını bu şekilde anlamaya çalışırım. Oyunu Android cihazda test ederken de bu log’lara erişebilmek ve(ya) Unity’nin verdiği exception’ları görebilmek oldukça büyük önem arz edebiliyor. Bunun için kullanabileceğimiz 5 farklı yöntem var: Unity 2017+ için Consoleadb logcat, Android Studio, Oyun İçi Debug Konsolu ve Eclipse ADT.

(daha&helliip;)