"Enter"a basıp içeriğe geçin

Unity’de Debug Çeşitleri Nelerdir?

Unity, oyun geliştirme platformu olarak dünyanın en popüler araçlarından biridir. Unity ile oyun geliştirirken, karşılaştığınız hataları ve sorunları çözmek için debug (hata ayıklama) yapmanız gerekir. Debug, oyununuzun çalışma zamanında nasıl davrandığını görmek, değişkenlerin değerlerini izlemek, kodunuzda kırılma noktaları belirlemek ve hata mesajlarını okumak gibi işlemleri içerir. Unity’de debug çeşitleri nelerdir ve nasıl kullanılır? Bu yazıda, detaylı bir şekilde anlatacağız.

Debug.Log()

Debug.Log() metodu, kodunuzda istediğiniz yerde kullanarak konsola mesaj yazdırmanızı sağlar. Bu mesajlar, oyununuzun durumunu takip etmenize veya kodunuzun hangi aşamalardan geçtiğini göstermenize yardımcı olur. Örneğin, bir karakterin can değerini konsola yazdırmak için şöyle bir kod yazabilirsiniz:

public class Character : MonoBehaviour
{
    public int health = 100;
    void Update()
    {
        Debug.Log("Character health: " + health);
    }
}

Debug.DrawLine()

Debug.DrawLine() metodu, oyun sahnenizde iki nokta arasında bir çizgi çizmenizi sağlar. Bu çizgiler, oyununuzda fiziksel etkileşimleri veya görüş açılarını görselleştirmenize yarar. Örneğin, bir karakterin önünde bir duvar olup olmadığını kontrol etmek için şöyle bir kod yazabilirsiniz:

public class Character : MonoBehaviour
{
    public float rayDistance = 5f;
    void Update()
    {
    // Karakterin önünden bir ışın fırlat
    Ray ray = new Ray(transform.position, transform.forward);
    RaycastHit hit;
    // Işınlama sonucunu konsola yazdır
    if (Physics.Raycast(ray, out hit, rayDistance))
    {
        Debug.Log("Hit something: " + hit.collider.name);
    }
    else
    {
        Debug.Log("Nothing in front");
    }
    // Işınlama yönünde bir çizgi çiz
    Debug.DrawLine(ray.origin, ray.origin + ray.direction * rayDistance, Color.red);
    }
}

Debug.Break()

Debug.Break() metodu, kodunuzda istediğiniz yerde kullanarak oyununuzu durdurmanızı sağlar. Bu sayede, oyununuzun belirli bir anda nasıl göründüğünü inceleyebilir veya değişkenlerin değerlerini değiştirebilirsiniz. Örneğin, bir karakterin canı bittiğinde oyunu durdurmak için şöyle bir kod yazabilirsiniz:

public class Character : MonoBehaviour
{
    public int health = 100;
    void Update()
    {
        // Karakterin canı bittiyse
        if (health <= 0)
        {
            // Oyunu durdur
            Debug.Break();
            // Konsola mesaj yazdır
            Debug.Log("Game over!");
        }
    }
}

Breakpoints

Breakpoints, kodunuzda belirlediğiniz noktalarda oyununuzu durdurmanızı sağlayan işaretlerdir. Breakpoints sayesinde, kodunuzun hangi satırlarının çalıştığını veya çalışmadığını görebilir veya değişkenlerin değerlerini izleyebilirsiniz. Breakpoints belirlemek için, Unity editöründe kodunuzun sol tarafındaki boşluğa tıklayarak kırmızı bir nokta oluşturabilirsiniz. Örneğin, aşağıdaki resimde 10. satırda bir breakpoint belirlenmiştir:

Debugging Tools:

Unity, debug işlemlerinizi kolaylaştırmak için çeşitli araçlar sunar. Bunlardan bazıları şunlardır:

Console: Console, oyununuzda oluşan hata, uyarı veya mesajları gösteren bir penceredir. Console’u açmak için Window > General > Console menüsünü kullanabilirsiniz. Console’da, mesajların türüne göre filtreleme yapabilir, mesajların kaynağına gidebilir veya mesajları temizleyebilirsiniz.
Inspector: Inspector, oyun sahnenizdeki nesnelerin özelliklerini gösteren ve değiştirmenize olanak veren bir penceredir. Inspector’u açmak için Window > General > Inspector menüsünü kullanabilirsiniz. Inspector’da, nesnelerin bileşenlerini, değişkenlerini, etiketlerini veya katmanlarını görebilir veya değiştirebilirsiniz.
Hierarchy: Hierarchy, oyun sahnenizdeki nesnelerin hiyerarşik bir listesini gösteren bir penceredir. Hierarchy’u açmak için Window > General > Hierarchy menüsünü kullanabilirsiniz. Hierarchy’de, nesneleri seçebilir, yeniden adlandırabilir, sil

Bu yazıda çeşitli debug yöntemlerini nasıl kullanacağımızı öğrenmiş olduk. Umarım faydalı olmuştur. İyi çalışmalar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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