Unity Oyun İçi Debug Konsolu (UI Sistemi İle)

Yayınlandı: 18 Haziran 2016 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

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…

Konsolun görünümünü ve işleyişini aslına olabildiğince benzetmeye çalıştım. İlaveten, konsol penceresini oyun sırasında boyutlandırmak için sağ alta bir ikon ekledim. Konsolu, sağ üstteki çarpıya tıklayarak oyun sırasında gizlerseniz, ufak bir popup ortaya çıkmakta. Bu popup’ı dilerseniz etrafta hareket ettirebilir ve yeni bir log gelip gelmediğini direkt popup üzerinden görebilirsiniz. Popup’a tıklarsanız da konsol yeniden açılır:

3

Kodları İngilizce yazdım ancak eklentiyi kullanmak için kodları değiştirmenize gerek yok. Tek yapmanız gereken, linkte paylaştığım unitypackage‘ı projenize Assets-Import Package-Custom Package… yolunu izleyerek import edip IngameDebugConsole klasöründeki IngameDebugConsole prefab’ını sahnenize sürüklemek.

Eğer konsolun oyundaki her sahnede gözükmesini istiyorsanız, bu prefab’ı sadece oyunun ilk sahnesine koymanız yeterli çünkü konsolda yer alan “Debug Log Manager” component’indeki Singleton değişkeni, konsolun sahneler arası geçişlerde yok olmasını önlüyor. Ancak konsolu sadece bazı sahnelerde istiyorsanız o zaman o sahnelere koyduğunuz konsollardaki Singleton‘un başındaki tiki kaldırın.

Konsolu Android uygulamalarınızda kullanırken, dilerseniz Android’in logcat log’larına direkt konsoldan erişebilirsiniz. Bunun için DebugLogCanvas objesindeki Receive Logcat Logs In Android seçeneğini açmanız yeterli. Ancak bazen logcat log’ları çok fazla olabildiği için, Logcat Arguments vasıtasıyla bu log’ları filtreleyebilirsiniz. Mesela sadece Admob ile alakalı log’ları görmek için Logcat Arguments’i -s Ads yapabilirsiniz.

Son olarak da, eğer ki log mesajlarını scriptlerimizde yakalamamızı sağlayan ve bu eklentinin yazılmasına olanak sağlayan Unity event’ini merak ediyorsanız: Application.logMessageReceived

Başka derslerde görüşmek dileğiyle!

Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.