Yerel ve Dünya Uzayı
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 26 / 85.
Bir nesnenin dünyanın yönlerinin yanı sıra kendine ait yönleri de vardır. transform.forward, nesnenin burnunun gösterdiği yöndür (Unity'nin Scene görünümündeki mavi ok); dünya koordinatlarında, uzunluğu bir birim olan bir vektör olarak ifade edilir. transform.right ve transform.up ise nesnenin kendi sağ ve yukarı yönleridir. Nesneyi döndürdüğünüzde bu yönler de onunla birlikte döner. Bu kâğıt uçak, sahnede y ekseni etrafında 90 derece döndürülmüştür; bu nedenle gösterdiği yönde, dünyanın x ekseni boyunca uçar:
public float speed = 4f;
void Update()
{
transform.position += transform.forward * speed * Time.deltaTime;
}transform.Translate(Vector3.forward * speed * Time.deltaTime) aynı şeyi yapar; çünkü Translate, vektörünü nesnenin kendi uzayında yorumlar: burada Vector3.forward, nesnenin ileri yönünü ifade eder. İkinci bağımsız değişken olarak Space.World verirseniz bunun yerine dünyanın eksenlerini kullanır; dolayısıyla transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World), uçak hangi yöne bakarsa baksın dünyanın z ekseni boyunca hareket eder.
transform.Rotate da nesnenin kendi eksenleri etrafında döndürür. Yukarıdan bakıldığında, y ekseni etrafındaki pozitif bir açı dik duran bir nesneyi sağına, negatif bir açı ise soluna döndürür; nesnenin transform.forward yönü de onunla birlikte döner.
Görev
KolayTanka tank kontrolleri ver: olduğu yerde dönsün, baktığı yönde ilerlesin.
Update()içinde sağ ok tuşu basılı tutulurkentransform.Rotate(0, turn * Time.deltaTime, 0);kullan; sol ok tuşu için-turnkullan.- Yukarı ok tuşu basılı tutulurken
transform.Translate(Vector3.forward * speed * Time.deltaTime);kullan.
“Oyna” düğmesine bas, dön ve ilerle: tank burnunun gösterdiği yöne gider. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class Tank : MonoBehaviour
{
public float speed = 3f;
public float turn = 90f;
void Update()
{
// Sağ/sol ok tuşları: y ekseni etrafında dön. Yukarı ok tuşu: tankın baktığı yöne doğru ilerle.
}
}
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1Unity'de C# Temelleri
Merhaba, UnityDeğişkenlerOndalık Sayılar için f GerekirKonsolda MetinHatırlayan DeğişkenlerEğer ve DeğilseSayıları KarşılaştırmaTekrar: Coin Collector4Girdi
Basılı, Basılı Tutulmuş, BırakılmışEksenlerAdlandırılmış DüğmelerFare DüğmeleriTekrar: Zıplama Yükleme7Döngüler ve Metotlar
for ile tekrarlamaİç içe döngülerBir metot yazmaYanıt veren metotlarDizilerTekrar: Merdiven10Nesneleri Bulma
Ada Göre BulEtiketlerTüre Göre BulReferanslar Bulmaktan İyidirUnity'de NullÖzet: En Yakın Madeni Para13Proje: Bloklardan Kaç
KoşucuGökyüzünden Bloklar5Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir Struct'tırTekrar: Drone Pilotu8GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı3Inspector
Inspector AlanlarıSerializeFieldOndalıklı Sayılar ve MathfInspector ÖzellikleriTekrar: Asansör6Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarBayrağı Göndere ÇekÖlçekNesnelere BakBir Noktaya Doğru Hareket EtTekrar: Yörüngedeki Ay9Proje: Yıldızı Yakala
YakalayıcıDüşen Bir YıldızKendi başına pratik yap: Unity playground