GÜNCELLEME (22.06.2016): Android oyunlarınızı direkt oyun içerisinden test etmenizi sağlayan bir eklenti yazdım; artık bu yazıda paylaşılan yöntemler yerine onu kullanmanızı tavsiye ederim: https://yasirkula.com/2016/06/18/unity-oyun-ici-debug-konsolu-ui-sistemi-ile/

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çinse kullanabileceğimiz iki araç var: adb logcat veya Eclipse ADT.

ADT ile debug etmek aslında adb logcat konsol komutuyla debug etmek ile aynı şey çünkü iki şekilde de aynı log’lar karşınıza geliyor. Ama Eclipse ADT bize daha görsel bir arayüz sunduğu için bu log’lara erişmek daha rahat oluyor.

Siz de oyununuzu Android cihazınızda test ederken Debug.Log output’larına erişebilmek istiyorsanız yapmanız gerekenler şöyle:

  • Cihazınızın “Geliştirici Seçenekleri” menüsünden “USB hata ayıklama“yı aktifleştirin (eğer geliştirici seçenekleri sizde yoksa internette “Android geliştirici seçeneklerini aktif etme” diye arama yapabilirsiniz).
  • Cihazı USB kablo ile bilgisayarınıza bağlayın.
  • Cihazın USB driver’ının son sürümünü cihaz sağlayıcınızın sitesinden edinin.
  • Android SDK Manager‘da “Google USB Driver“ın kurulu olduğundan emin olun:

resim1

  • Unity projenizin Build Settings‘ine gelin, platform olarak Android’in seçili olduğundan emin olun ve “Development Build” seçeneğini aktifleştirin.

NOT: Oyunu internette yayınlarken Development Build seçeneğini geri kapatmayı unutmayın!

Şimdi soru adb logcat mi yoksa Eclipse ADT mi kullanacağımıza geldi. Ben Eclipse ADT ile tanışana kadar logcat kullanıyordum ama sonrasında Eclipse ile devam ettim. Eclipse’in dezavantajı başlı başına bir IDE olduğu için boyutunun büyük olması.

adb logcat Kullanımı

Yapmanız gereken şey Android SDK’yı kurduğunuz yerdeki platform-tools klasörüne gitmek (C:\Program Files (x86)\Android\android-sdk\platform-tools gibi). Bu klasörde normal şartlarda adb.exe dosyası olması lazım, yoksa sebebini ben de bilmiyorum. Şimdi klavyeden Shift tuşuna basılı tutarken klasörde boş bir yere sağ tıklayın ve “Komut penceresini burada aç” seçeneğini seçin:

resim2

Gelen komut penceresine “adb logcat -s Unity” (tırnaksız) yazın. Artık Unity oyununuzu cihazınızda çalıştırdığınızda oyuna dair tüm log’lar burada gözükecek:

resim3

Oyunu Android’de debug ederken işin kötü yanı Unity’nin kendi verdiği log’lar ile sizin Debug.Log’larınız aynı yerde gözüküyor olması. Bu yüzden kendi log’larınızı ayırt etmek kolay olamayabiliyor. Ancak bu konuyla ilgili yapılabilecek birşey var mı bilmiyorum.

Eclipse ADT Kullanımı

ADT dediğimiz şey Eclipse için olan bir plugin. Eclipse ise Java’da kod yazmak için kullanılan gayet popüler bir program. Eğer elinizde Eclipse yoksa önce Eclipse kurun. Ancak dediğim gibi, Eclipse’in boyutu hiç de az değil (yaklaşık 1 GB var). Eğer ki sırf debug yapacağım diyorsanız adb logcat kullanmanızı öneririm.

Eclipse’i kurduktan sonra ADT pluginini kurun: http://developer.android.com/sdk/installing/installing-adt.html

Kurulum işlemleri bittikten sonra Eclipse’i açın. Tepeden “Window-Show View-Other…” yolunu izleyin ve gelen listeden LogCat‘i seçin:

resim4

Kullanıcı arayüzüne LogCat adında yeni bir panel gelecek. Bu LogCat panelinde “Saved Filters” diye ufak bir bölme var. Orada ilk başta sadece “All messages (no filters)” yer almakta. Bu filter seçili iken Android cihazınızın verdiği tüm log’lar LogCat panelinde listelenir. Yani oyununuzla alakasız binlerce mesaj buraya yığılır. Sadece Unity’nin verdiği log’ları görmek için yapmamız gereken şey “Saved Filters”a yeni bir filter eklemek:

resim5

Artık Unity oyununuzu çalıştırdığınız vakit LogCat panelinde Unity’nin verdiği log’ları ve exception’ları görebilirsiniz:

resim6

İşte bu kadar! Sonraki derste görüşmek üzere!

yorum
  1. Kimex dedi ki:

    adb logcat ile loglara bakmak istediğimde
    error : more than one device / emulator
    waiting for device hatası aldım
    Bu hatayı nasıl düzenleyebilirim. Birde Eclipse ile deniyeyim dedim ama ondada hangisi kurulacak bir dünya kurulma seçeneği verdi 😀
    ve plugin için verdiğiniz linkde sadece yönlendirme linkleri var install linki yok 😦 Yada sinirlerim iyice bozulduğu için ben göremedim 😦 ( Oyunun menu sistemi + admob + şimdide bu olmuyor)

    • yasirkula dedi ki:

      Java için olan Eclipse’i kuracaksınız. ADT için verdiğim link dediğiniz gibi artık işlevsiz olmuş, internette “eclipse adt kurulumu” diye aratırsanız birkaç sonuç çıkıyor. Hatayı çözmek için ise; eğer bilgisayara birden çok cihaz bağlı ise birini çıkarmayı deneyin.

Bir Yanıt Bırakı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. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s