Unity- Transform Component
Transform sahnede yer alan tüm objelerde bulunan standart bir component’tir. Sahneye eklenilen her objede otomatik olarak bu component’ten bulunur. Bu component silinemez ve kapatılamaz.
Bu component içerisinde 3 özellik bulunur. Bunlar Position, Rotation ve Scale özellikleridir.
Şimdi sırasıyla bu özellikleri açıklayalım.
Position
Sahnedeki objemizin bulunduğu konumu ve pozisyonunu belirtir. Nesnemizi Move aracıyla hareket ettirebileceğimiz gibi Position değerlerini değiştirerek te objemizi hareket ettirebiliriz.
Rotation
Sahnedeki objemizin açısını belirtir. Objemizi Rotate aracı ile döndürebildiğimiz gibi Rotation değerlerini değiştirerek te objemizi döndürebiliriz.
Scale
Sahnedeki objemizin boyutunu belirtir. Objemizi Scale aracı ile döndürebildiğimiz gibi Scale değerlerini değiştirerek te objemizi boyutunu istediğimiz gibi değiştirebiliriz.
Transform component’i varsayılan olarak bu 3 özelliği içerir demiştik. Unity içerisinde Transform component’ine etki edecek bazı fonksiyonlar bulunur. Bu yazımızda sıklıkla kullandığımız 2 fonksiyondan bahsetmek istiyorum.
Fonksiyonlara geçmeden önce sahnemizi oluşturalım. Sahnemize 1 adet Cube objesi ekleyelim. Oluşturduğumuz bu Cube objesi içerisine PlayerController adında bir script dosyası ekleyelim.
Translate Fonksiyonu
Bu fonksiyon ile istediğimiz objeyi istediğimiz yönde hareket ettirebiliriz.
Kullanımı oldukça basittir.
transform.Translate(Vector3.forward * 5f * Time.deltaTime);
Parantez içerisine objenin ilerleyeceği yönü Vector3. forward olarak yani Z ekseni olarak belirttik. Objemiz Vector3. forward ile 1 birim ileri gider. Bu değeri 5 ile çarparak 1 birim değil de 5 birim olarak ilerlemesini sağladık. Time.deltaTime ile de tüm cihazlarda aynı hızda ilerlemesini belirttik.
Kodlarımızı Update metodu içerisine yazarak bu hareketin sürekli olmasını sağladık. Yani nesne 1 defa ilerleyip durmak yerine aynı fonksiyonu tekrar tekrar çalıştırarak sürekli ilerler.
Rotate Fonksiyonu
Bu fonksiyon ile istediğimiz objeyi istediğimiz açıda döndürebiliriz.
Kullanımı oldukça basittir.
transform.Rotate(new Vector3(30,30,30));
Parantez içerisine objenin tüm eksenlerde 30 derecelik bir açıyla döneceğini belirttik. transform.Rotate fonksiyonu ekstra 1 parametre daha alır. Bu parametre ile objemizin hangi eksene göre dönüş yapacağını belirtebiliriz.
transform.Rotate(new Vector3(30,30,30),Space.Self);
transform.Rotate(new Vector3(30,30,30),Space.World);
Space.Self der isek obje kendi eksenine göre bir dönüş sağlar.
Space.World der isek objemiz dünya eksenine göre bir dönüş sağlar.
Transform component’i ile daha fazla bilgiye ulaşmak isterseniz şu linkten Unity dökümanlarını inceleyebilirsiniz.
Link:> https://docs.unity3d.com/ScriptReference/Transform.html