Nesneler Arasındaki Mesafe
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 21 / 67.
Vector3.Distance(a, b), üç eksenin tamamı boyunca düz bir çizgi üzerinden ölçülen, iki nokta arasındaki mesafeyi birim cinsinden verir. Bu, aralarındaki adımın uzunluğudur: (a - b).magnitude; dolayısıyla a ile b'nin sırası önemli değildir. (0, 0, 0) ile (3, 0, 4) arasındaki mesafe 5'tir.
Bir mesafeyi bir sayıyla karşılaştırdığında, komut dosyası bir şeyin ne zaman yakında olduğunu bilir. Bu kampçı, yalnızca konumunu Inspector'ın belirlediği kamp ateşine 4 birim mesafedeyken ellerini ısıtabilir:
public Vector3 campfire = new Vector3(3, 0, 4);
void Update()
{
float d = Vector3.Distance(transform.position, campfire);
if (d < 4f && Input.GetKeyDown(KeyCode.Space))
{
Debug.Log("You warm your hands");
}
}Mesafe yüksekliği de hesaba katar: ateşin 5 birim üstündeki bir kampçı ateşten 0 değil, 5 birim uzaktadır. Yüksekliğin hesaba katılmaması gerektiğinde, y değerleri aynı olan iki noktayı karşılaştır.
Görev
KolayYürüyücü bataklığı geçer. Bataklığın merkezinden 3 birim uzaklığa kadar, Inspector'da ayarlanan swamp alanında, speed değerinin yarısı kadar hızla hareket eder; daha uzakta tam hızla hareket eder. Hareket kodu yazılmıştır: her karede kullanılacak hızı hesapla ve speed alanını değiştirmeden bırak.
Play düğmesine basıp bataklığın içinden yürü, ardından Check düğmesine bas.
Kendin dene
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
public Vector3 swamp = new Vector3(0, 0.5f, 0);
void Update()
{
float s = speed;
// Bataklığa 3 birim mesafedeyken yarı hızla hareket et.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1İlk Betiğiniz
Merhaba, UnityKüpü YerleştirHer Karede Hareket EtHer Saniye DönTuşlarla Yön VerÖzet: Küpü Sür4Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir YapıdırÖzet: Drone Pilotu7Proje: Yıldızı Yakala
YakalayıcıDüşen Bir Yıldız5Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarÖlçekNesnelere BakışBir Noktaya Doğru HareketTekrar: Yörüngedeki Ay6GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBir Bileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı