Bir Noktaya Doğru Hareket
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 27 / 67.
Vector3.MoveTowards(current, target, maxStep), target'a maxStep kadar yaklaşan bir nokta döndürür. Hedef bundan daha yakınsa hedefin kendisini döndürür; bu nedenle hedefi asla aşmaz. Adım olarak speed * Time.deltaTime kullanıldığında nesne sabit hızla hareket eder ve tam hedefte durur. Bu teleferik, saniyede 2 birim hızla istasyonuna süzülür:
public Vector3 station = new Vector3(6, 3, 0);
public float speed = 2f;
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, station, speed * Time.deltaTime);
}İstasyona vardığında sonraki her çağrı yine station döndürür; böylece teleferik yerinde kalır ve transform.position == station doğru olur. Tek bir sayı için Mathf.MoveTowards aynı şekilde çalışır.
Vector3.Lerp(a, b, t), a'dan b'ye giden yolun t oranındaki noktadır: t = 0.5 olduğunda yolun tam ortasındadır. Update() içinde Lerp(transform.position, station, 2f * Time.deltaTime) olarak yazıldığında her karede kalan mesafenin bir bölümünü kat eder: başlangıçta hızlı, sona yaklaştıkça giderek yavaşlar; belirli bir hızla varmak yerine hedefe doğru yavaşça yaklaşır. Bir nesnenin belirli bir hızla hareket edip tam hedefte durması gerekiyorsa MoveTowards'u kullan; yumuşak bir yavaşlama için bu Lerp kalıbını kullan.
Görev
OrtaDrone, Space tuşuna basana kadar havada bekler. O andan itibaren pad konumuna, yani iniş pistinin konumuna, saniyede speed birim hızla düz bir çizgide uçar ve tam üzerine iner. İndiğinde Landed mesajını bir kez kaydeder; sonrasında her karede tekrar kaydetmez.
Play'e bas, Space tuşuna bas, ardından Check'e bas.
Kendin dene
using UnityEngine;
public class Drone : MonoBehaviour
{
public Vector3 pad = new Vector3(0, 0.25f, 0);
public float speed = 2f;
void Update()
{
// Space tuşuna basıldıktan sonra: speed hızıyla pad konumuna uç ve varınca Landed mesajını bir kez günlüğe kaydet
}
}
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ı