Unity Vector3 Kullanımı
Unity’de Vector3, 3 boyutlu uzaydaki bir noktayı, yönü ya da hareketi temsil eden bir yapıdır. Bir Vector3 yapısı x, y ve z eksenlerini içerir. Oyunlarda obje konumları, hareketleri ve dönüşleri Vector3 kullanarak tanımlanır. Vector3, Unity’de nesneleri konumlandırmak, hareket ettirmek ve yönlendirmek için temel bir yapıdır. Matematiksel işlemler, hareket fonksiyonları ve dönüşümler sayesinde oyun nesnelerinin kontrolü sağlanır.
Vector3 Yapısının Temelleri
Vector3, üç adet float değeri kullanarak tanımlanır:
- x: Sağ (+) / Sol (-) yön hareketi (yatay eksen).
- y: Yukarı (+) / Aşağı (-) yön hareketi (dikey eksen).
- z: İleri (+) / Geri (-) yön hareketi (derinlik ekseni).
Vector3 Oluşturma ve Vector3 Örnekleri
Vector3 oluşturmak için aşağıdaki yapı kullanılır.
Vector3 myVector = new Vector3(2.0f, 3.0f, -4.0f);
Burada x ekseninde 2.0f, y ekseninde 3.0f, z ekseninde ise -4.0f bir değerdir.
1- Bir Objeyi Konumlandırma
Aşağıdaki kod bir objeyi (örneğin, bir küp olabilir) sahnedeki bir noktaya yerleştirir:
void Start()
{
// Objeyi (2, 3, -4) konumuna taşır
transform.position = new Vector3(2.0f, 3.0f, -4.0f);
}
2- Objeyi Belirli Bir Yöne Taşıma
Objeyi bir yön boyunca hareket ettirmek için Vector3 kullanabiliriz.
Time.deltaTime kullanımı: Hareketin kare hızına bağımsız olmasını sağlar.
void Update()
{
// Objeyi x yönünde sağa doğru hareket ettirir
transform.position += new Vector3(1.0f, 0.0f, 0.0f) * Time.deltaTime;
}
3- Yön ve Büyüklük
Bir vektör, büyüklük (distance) ve yön içerir.
Büyüklük (Magnitude): Bir vektörün uzunluğunu hesaplar. Örneğin;
csharpKodu kopyalaVector3 myVector = new Vector3(3, 4, 0);
float magnitude = myVector.magnitude; // 5 olur
Normalize: Vektörü birim uzunluğa (1) indirir.
Vector3 direction = myVector.normalized;
4- İki Nokta Arasındaki Mesafe
İki nokta arasındaki mesafeyi bulmak için Vector3.Distance kullanılır. Örnek;
Vector3 pointA = new Vector3(0, 0, 0);
Vector3 pointB = new Vector3(3, 4, 0);
float distance = Vector3.Distance(pointA, pointB); // 5
5- Vektör Toplama ve Çıkarma
Vektörler üzerinde matematiksel işlemler yapılabilir.
Vector3 vectorA = new Vector3(1, 2, 3);
Vector3 vectorB = new Vector3(4, 5, 6);
Vector3 result = vectorA + vectorB; // (5, 7, 9)
Vector3 difference = vectorB - vectorA; // (3, 3, 3)
6- Lerp (Lineer Enterpolasyon)
İki vektör arasında yumuşak geçiş yapmak için Vector3.Lerp kullanılır.
Vector3 start = new Vector3(0, 0, 0);
Vector3 end = new Vector3(10, 10, 0);
void Update()
{
// 0 ile 1 arasında bir t değeri kullanarak iki nokta arasında geçiş
transform.position = Vector3.Lerp(start, end, Time.time * 0.1f);
}