Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

Unity'de Gizmos.DrawLine() ile Görselleştirme: Adım Adım Anlatım

Paylaşan: Unity Eğitim 06 September 2025 3 dakika okuma 113 görüntülenme

Unity oyun motorunda geliştirme yaparken, özellikle debug etme ve görselleştirme aşamalarında, sahne üzerinde çeşitli şekiller çizerek yardımcı nesneler oluşturmak son derece faydalıdır. Bu nesneler, oyunun çalışması sırasında geçici olarak görünür ve oyunun nihai sürümünde yer almazlar. Gizmos.DrawLine() fonksiyonu, bu amaç için Unity'nin bize sunduğu güçlü bir araçtır. Bu makalede, Gizmos.DrawLine() fonksiyonunun nasıl kullanılacağını, farklı kullanım senaryolarını ve örneklerini detaylı olarak ele alacağız.

Gizmos.DrawLine() Fonksiyonu Nedir?


Gizmos.DrawLine(), Unity'de sahne görünümünde iki nokta arasında bir çizgi çizmenizi sağlayan bir fonksiyondur. Bu çizgi, oyunun çalışırken Editor penceresinde görünür ve oyunun çalıştırılma anında veya oyunun son sürümünde görünmez. Bu fonksiyon, özellikle oyun mantığınızı debug ederken, algoritmalarınızı görselleştirirken veya oyun içindeki çeşitli nesneler arasındaki ilişkileri anlamak için oldukça kullanışlıdır.

Fonksiyon Parametreleri


Gizmos.DrawLine() fonksiyonu iki vektör parametresi alır:

  • start: Çizginin başlayacağı noktayı temsil eden bir Vector3 değeri.

  • end: Çizginin biteceği noktayı temsil eden bir Vector3 değeri.


Bu parametreler, Unity sahnesindeki dünya koordinatlarını kullanır.

Gizmos.DrawLine() Kullanımı: Örnekler


Örnek 1: Basit Bir Çizgi Çizme


İki nokta arasında basit bir çizgi çizmek için aşağıdaki kodu kullanabilirsiniz:

using UnityEngine;

public class DrawLineExample : MonoBehaviour
{
void OnDrawGizmos()
{
Gizmos.DrawLine(new Vector3(0, 0, 0), new Vector3(1, 1, 0));
}
}


Bu kod, (0, 0, 0) noktasından (1, 1, 0) noktasına bir çizgi çizecektir. OnDrawGizmos() fonksiyonu, Gizmos çizimlerinin gerçekleştirildiği yerdir. Bu fonksiyonu her zaman kullanmalısınız.

Örnek 2: Dinamik Çizgi Çizme


Oyun nesnelerinin konumlarına göre dinamik olarak çizgiler çizmek için, Transform bileşenlerini kullanabilirsiniz:

using UnityEngine;

public class DrawLineDynamic : MonoBehaviour
{
public Transform target;

void OnDrawGizmos()
{
Gizmos.DrawLine(transform.position, target.position);
}
}


Bu kod, bu script'i eklediğiniz oyun nesnesinin konumundan, target olarak atayacağınız başka bir oyun nesnesinin konumuna bir çizgi çizecektir. target değişkenini Inspector penceresinden atamanız gerekecektir.

Örnek 3: Çoklu Çizgi Çizme


Birden fazla çizgi çizmek için, OnDrawGizmos() fonksiyonu içinde birden fazla Gizmos.DrawLine() çağrısı yapabilirsiniz:

using UnityEngine;

public class DrawMultipleLines : MonoBehaviour
{
void OnDrawGizmos()
{
Gizmos.DrawLine(new Vector3(0, 0, 0), new Vector3(1, 1, 0));
Gizmos.DrawLine(new Vector3(1, 1, 0), new Vector3(2, 0, 0));
Gizmos.DrawLine(new Vector3(2, 0, 0), new Vector3(0, 0, 0));
}
}


Bu örnek, bir üçgen oluşturacak üç çizgi çizer.

Gizmos.DrawLine() ile İlgili İpuçları



  • Performans: Çok sayıda çizgi çizmek performansı etkileyebilir. Gereksiz çizgilerden kaçının.

  • Okunabilirlik: Çizgilerinizi açık ve anlaşılır hale getirin. Renklendirme kullanın.

  • Gizlilik: Çizgilerinizin sadece editörde görünmesini istiyorsanız, OnDrawGizmos() fonksiyonunu kullanın.


Sonuç


Gizmos.DrawLine(), Unity'de görselleştirme ve debuglama için son derece kullanışlı bir araçtır. Bu fonksiyonu kullanarak, oyun mantığınızı daha iyi anlayabilir ve geliştirme sürecinizi hızlandırabilirsiniz. Bu makalede verilen örnekleri deneyerek ve kendi projelerinizde kullanarak, Gizmos.DrawLine() fonksiyonunun gücünü keşfedebilirsiniz.

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!