Collision Detection Hatasını Ayıklama: Physics Debugger Kullanımı

Oyununda çarpışmaların çalışmadığını fark ettin ama neden olduğunu bulamıyorsun. Physics Debugger, bu sorunu hızlıca teşhis etmene yardımcı olur.

Unity'de Physics Debugger, fizik dünyasını görsel olarak gösterir. Collider'lar, rigidbody'ler ve çarpışma kontrol noktaları ekranda görünür hale gelir. Böylece collider'ın yanlış konumda olup olmadığını, layer ayarlarının doğru olup olmadığını anında görebilirsin.

Debugger'ı açmak için Scene penceresinin sağ üstündeki Gizmos menüsüne tıkla. Physics seçeneğini işaretle. Artık collider'lar renkli kutular veya şekiller olarak görünecek. Yeşil renk aktif, kırmızı renk trigger anlamına gelir.

Sık yapılan hata: Collider layer ayarları yanlış olunca çarpışma algılanmaz. Şu kodu kontrol et:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1using UnityEngine;
2
3public class CollisionDebug: MonoBehaviour
4{
5private Rigidbody rb;
6private BoxCollider boxCollider;
7
8void Start()
9{
10rb = GetComponent<Rigidbody>();
11boxCollider = GetComponent<BoxCollider>();
12
13// Collider aktif mi kontrol et
14Debug.Log("Collider Enabled: " + boxCollider.enabled);
15Debug.Log("Rigidbody Enabled: " + rb.enabled);
16Debug.Log("Rigidbody Is Kinematic: " + rb.isKinematic);
17}
18
19void OnCollisionEnter(Collision collision)
20{
21Debug.Log("Çarpışma algılandı: " + collision.gameObject.name);
22}
23
24void OnTriggerEnter(Collider other)
25{
26Debug.Log("Trigger algılandı: " + other.gameObject.name);
27}
28}

Beklenen çıktı (konsol):

1Collider Enabled: True
2Rigidbody Enabled: True
3Rigidbody Is Kinematic: False
4Çarpışma algılandı: Enemy

Eğer çarpışma algılanmıyorsa şunları kontrol et:

  1. Her iki nesnenin de Collider'ı olmalı. Trigger olmayan çarpışmalar için en az biri Rigidbody olmalı.
  2. Rigidbody'nin Body Type'ı Dynamic veya Kinematic olmalı (Static ise çarpışma algılanmaz).
  3. Layer Collision Matrix kontrol et: Edit > Project Settings > Physics. İki nesnenin layer'ları çarpışacak şekilde ayarlanmış mı?
  4. Collider size'ı nesnenin mesh'iyle eşleşiyor mu? Scale değişirse Collider'ı yeniden ayarla.

Debugger'da collider'lar görünmüyorsa Scene View'da Gizmos açık mı kontrol et. Ayrıca Play Mode'da açılmış mı diye bak; bazı ayarlar sadece runtime'da görünür.

Physics Debugger + Console beraber kullanırsan hata bulma süresi çok kısalır. Collider'ı görmek, sorunun yarısını çözmek demektir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz