Nesneler Arasındaki Mesafe
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 28 / 85.
Vector3.Distance(a, b), iki noktanın üç eksenin tamamı boyunca düz bir çizgi üzerinden ölçülen, birim cinsinden aralarındaki uzaklıktır. Bu, aralarındaki adımın uzunluğudur: (a - b).magnitude; bu nedenle a ve b'nin sırası önemli değildir. (0, 0, 0) noktasından (3, 0, 4) noktasına olan uzaklık 5'tir.
Bir uzaklığı bir sayıyla karşılaştırın; böylece bir betik bir şeyin ne zaman yakın olduğunu bilir. Bu kampçı ellerini yalnızca konumunu Inspector'ın belirlediği kamp ateşinin 4 birim yakınındayken ı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");
}
}Uzaklık yüksekliği de hesaba katar: ateşin 5 birim üzerindeki 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ın.
Görev
KolayBataklıkta yürüyenin hızını yarıya düşür.
float s = speed;satırının altınaif (Vector3.Distance(transform.position, swamp) < 3f)yaz.- Bu bloğun içinde
s = speed / 2;olarak ayarla.speedalanını ve hareket satırlarını olduğu gibi bırak.
“Oyna” düğmesine bas ve bataklığın içinden sağa doğru yürü: yürüyen bataklıkta yavaşlar. Ardından “Kontrol et” 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 mesafe içindeyken yarı hızda hareket et.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
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