Mesajlar Etiketlendi ‘android’

Unity Oyun İçi Inspector ve Hierarchy

Yayınlandı: 22 Ekim 2017 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde
Etiketler:, , , , , , , , , ,

GÜNCELLEME (27.02.2018): Asset Store linki eklendi.

Hepinize merhabalar,

Bu kısa yazıda sizlerle, yakın zamanda Unity 3D için yazmış olduğum bir plugini paylaşacağım: oyun esnasında çalışabilen Inspector ve Hierarchy panelleri. Hierarchy paneli vasıtasıyla, build almış olduğunuz oyununuzda oyun esnasında obje hiyerarşinizi görebilir ve Inspector paneli vasıtasıyla da seçili bir objenin sahip olduğu component’leri görebilir, değişkenlerinin değerlerini inceleyebilir veya dinamik olarak değiştirebilirsiniz. Özellikle bazen oyunlarınızı debug ederken işinize yarayabileceğini düşünüyorum.

Asset Store: https://www.assetstore.unity3d.com/en/#!/content/111349

Alternatif Link: https://github.com/yasirkula/UnityRuntimeInspector/raw/master/RuntimeInspector.unitypackage

Asset’i projenize import ettikten sonra RuntimeHierarchy ve RuntimeInspector prefab’larından istediklerinizi sahnenizdeki bir canvas‘ın içine sürükle-bırak yapabilirsiniz. Sonrasında RuntimeHierarchy’nin Connected Inspector değişkenine değer olarak sahnenizdeki RuntimeInspector objesini ve RuntimeInspector’un Connected Hierarchy değişkenine değer olarak da sahnenizdeki RuntimeHierarchy’i sürükle-bırak yaptınız mı tamamdır. Eğer dilerseniz RuntimeInspector’un Inspect(object obj) fonksiyonu vasıtasıyla istediğiniz herhangi bir objeyi de RuntimeInspector’da gözetleyebilirsiniz.

Sonraki yazımızda görüşmek üzere!

NOT: Bu ders SourceTree‘nin kullanımından ziyade, Unity’de Version Control sistemi kullanmak için neler yapmanız gerek onları anlatmakta. Eğer Version Control ilginizi çekmeyen/ihtiyacınız olmayan bir şeyse bu dersi atlayabilirsiniz.

Hepinize merhabalar,

Bu derste Unity ile SourceTree‘yi beraber kullanırken yapmanız gereken/tavsiye edilen ayarlardan ve Unity’nin Smart Merge isimli yardımcı programının kurulumundan bahsedeceğim. Eğer daha önce bir version control sistemi kullanmadıysanız dersi anlamakta güçlük çekebilirsiniz, bilginize.

Belki bildiğiniz üzere, birden çok kişinin aynı anda üzerinde çalıştığı projelerde, düzenli/kontrollü bir çalışma ortamı için genellikle bir version control sistemi kullanılır. Bu yaz yaptığım staj esnasında ben de bir arkadaşımla beraber bir Unity projesi üzerinde çalıştım ve version control’ü SourceTree+Bitbucket ile sağladık. Ne yalan söyleyeyim çok da memnun kaldık çünkü yaptığımız değişikliklerin bir kısmını kontrollü bir şekilde geri almak zorunda kaldığımızda ya da oyunun birkaç gün önceki versiyonu ile mevcut versiyonunu kıyaslamak istediğimizde bunu yapmak gerçekten de çok kolay oldu.

O halde hazırsanız başlayalım!

(daha&helliip;)

Yine ve yeniden merhabalar,

Bu yazıda, kimilerini kendim tecrübe ettiğim, kimilerini de ordan burdan derlediğim optimizasyon önerilerinde bulunacağım (Unity 3D için). Yeni şeyler öğrendikçe bu yazıyı sürekli güncellemeye çalışacağım.

Optimizasyon çok ucu açık bir şey olduğu için kimsenin “optimizasyon konusuna hakimim” gibi bir söylemde bulunabileceğini sanmıyorum. Tam olarak da bu yüzdendir ki, kendi bildiğiniz optimizasyon tekniklerini de bu yazı altında yorum olarak paylaşırsanız burada Türk oyun geliştiricileri için faydalı bir kaynak oluşturabiliriz (diye ümit ediyorum).

(daha&helliip;)

GÜNCELLEME (11.03.2018): Arayüzde iyileştirmelere gidildi ve kod biraz daha optimize edildi. Eğer eski sürümü kullanmakta iseniz önce Plugins/DebugLog klasörünü silerek eski sürümü kaldırıp ondan sonra yeni sürümü kurun.

Hepinize merhabalar,

Bu yazıda sizlerle kendi yazdığım basit bir Unity eklentisini paylaşacağım. Bu eklentinin olayı, Unity’den aşina olduğumuz console‘un bir benzerini direkt oyun içerisinde göstermek.

Bir oyunu Unity editöründe test ederken aldığımız hataları, uyarıları veya Debug.Log mesajlarını console vasıtasıyla kolayca görebiliyoruz ancak oyunu herhangi bir platforma build aldıktan sonra bu mesajlara direkt oyun içerisinden erişemiyoruz; bunun için logcat gibi ekstra bir ekipman kullanmamız gerekiyor. Ya da en azından ben uzun zamandır öyle biliyordum. Bu debug mesajlarına bir event vasıtasıyla kendi scriptlerimizden erişebildiğimizi daha yeni öğrendim. Bunu öğrenmemin hemen ardından da, alınan log’ları görsel olarak kullanıcıya sunan basit bir arayüz geliştirdim (UI sistemi ile).

Asset Store: https://www.assetstore.unity3d.com/en/#!/content/68068

Alternatif Link: https://github.com/yasirkula/UnityIngameDebugConsole/raw/master/IngameDebugConsole.unitypackage

NOT: Bu eklenti yalnızca Unity 5.2 veya üzerinde çalışır.

1

Kullanım detayları için yazının devamını okuyabilirsiniz…

(daha&helliip;)

Yeniden merhabalar,

Bu ufak derste, Unity Remote 4 ile Unity oyununuzu build almadan mobil cihazınızdan nasıl test edebileceğinizden bahsedeceğim. Program benim S3 telefonumda sıkıntısız çalışıyordu, büyük olasılıkla sizde de çalışacaktır.

Başlamadan önce ufak bir bilgi geçeyim: Unity Remote 4’ün çalışma prensibi build almaya göre biraz daha farklı. Build aldığınız zaman oyun mobil cihazınız üzerinde çalışırken Unity Remote kullandığınız zaman oyun Unity editörü üzerinde çalışır. Editördeki oyundan sürekli screenshot’lar alınır ve bu screenshot’lar Unity Remote’a gönderilir. Unity Remote’un yaptığı şey ise bu screenshot’ları telefon ekranında göstermek ve kullanıcı ekrana dokunursa bu input bilgilerini Unity editörüne geri yollamak (ilaveten sensör (accelerometer), gyro, kamera, pusula ve gps input’larını da destekliyor[muş]).

NOT: Unity Remote’un çalışması için Android SDK‘nın düzgün bir şekilde kurulu olması lazım (özellikle Google USB Driver): https://yasirkula.com/2013/07/17/unity-android-sdk-kurulumu-resimli-anlatim/

Programı nasıl kullanacağınızı görmek için yazının devamını okuyabilirsiniz…

(daha&helliip;)

GÜNCELLEME – 10.09.2017: yazıda bahsi geçen joystick’i artık SimpleInput plugin’ime ekledim. SimpleInput plugin’i, multi-platform Input işlemlerini oldukça kolaylaştırdığı için bu joystick yerine SimpleInput’taki joystick’i kullanmanızı öneririm: https://yasirkula.com/2017/07/19/unity-gelismis-input-sistemi-mobil-destekli/

Hepinize merhabalar,

Belki biliyorsunuzdur, bundan yaklaşık 2 sene önce sitemde bir Joystick scripti paylaşmıştım (https://yasirkula.com/2014/05/27/unity-3d-android-dokunmatik-ekran-joystick-kullanimi/). Bunun üzerinden uzunca bir zaman geçti. Bazen bu scripti Unity’nin 4.6 versiyonu ile gelen yeni UI sistemini kullanarak güncellemeyi düşündüm ama bu fikir nedense hep havada kaldı. Ancak bugün ufak bir azimle scripti yeni sisteme geçirdim, ne yalan söyleyeyim hoşuma da gitti yeni script 🙂

Belki reklam olarak göreceksiniz ama beni bu Joystick scriptini güncellemeye iten önemli bir faktör de TAGDA Game kanalının joystick hakkındaki bir video dersiydi (https://www.youtube.com/watch?v=k0DrDK5ixlQ), değinmeden geçmek istemedim. Hepinize destekleriniz için teşekkür ederim.

Yeni joystick plugini (unitypackage): https://www.dropbox.com/s/pwm3yf1a72r41h0/JoystickUI.unitypackage?dl=0 (Alternatif link)

Derste işlediğimiz örnek projenin bitmiş hali: https://www.dropbox.com/s/jm8m83qybw3tmes/JoystickUIOrnekProje.zip?dl=0 (Alternatif link)

0

Detayları görmek ve örnek projeye joystick’i adım adım implement etmek için yazının devamını okuyabilirsiniz…

(daha&helliip;)

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;)