Bergerak Menuju Titik
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 27 dari 67.
Vector3.MoveTowards(current, target, maxStep) mengembalikan titik yang berjarak hingga maxStep lebih dekat ke target. Jika target lebih dekat dari jarak itu, fungsi ini mengembalikan target itu sendiri, sehingga tidak pernah melewatinya. Dengan speed * Time.deltaTime sebagai langkahnya, sebuah object bergerak dengan kecepatan tetap dan berhenti tepat di target. Kereta gantung ini meluncur ke stasiunnya dengan kecepatan 2 unit per detik:
public Vector3 station = new Vector3(6, 3, 0);
public float speed = 2f;
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, station, speed * Time.deltaTime);
}Setelah tiba, setiap pemanggilan berikutnya kembali mengembalikan station, sehingga kereta tetap di tempat, dan transform.position == station bernilai true. Untuk satu angka, Mathf.MoveTowards bekerja dengan cara yang sama.
Vector3.Lerp(a, b, t) adalah titik yang berada sejauh pecahan t dari a menuju b: saat t = 0.5, titik itu berada di tengah. Jika ditulis sebagai Lerp(transform.position, station, 2f * Time.deltaTime) di dalam Update(), fungsi ini menempuh sebagian dari jarak yang tersisa pada setiap frame: awalnya cepat, lalu semakin lambat saat mendekati akhir, dan terus mendekat alih-alih tiba dengan kecepatan tetap. Gunakan MoveTowards ketika object harus bergerak dengan kecepatan tetap dan berhenti tepat di tujuan. Gunakan pola Lerp tersebut untuk memperlambat gerakan secara halus.
Tantangan
SedangDrone menunggu di udara sampai kamu menekan Space. Setelah itu drone terbang lurus menuju pad, posisi landasan pendaratan, dengan kecepatan speed unit per detik, lalu mendarat tepat di sana. Saat mendarat, drone mencatat Landed satu kali, bukan berulang kali pada setiap frame setelahnya.
Tekan Play, tekan Space, lalu Check.
Coba sendiri
using UnityEngine;
public class Drone : MonoBehaviour
{
public Vector3 pad = new Vector3(0, 0.25f, 0);
public float speed = 2f;
void Update()
{
// Setelah Space ditekan: terbang menuju pad dengan kecepatan speed, lalu catat Landed sekali saat tiba
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Scripting Unity
1Skrip Pertamamu
Halo, UnityLetakkan KubusBergerak di Setiap FrameBerputar Setiap DetikKendalikan dengan TombolRingkasan: Kendarai Kubus4Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak antara BendaVector3 adalah StructRingkasan: Pilot Drone7Proyek: Tangkap Bintang
Si PenangkapBintang Jatuh5Transformasi dan Hierarki
Objek Induk dan AnakSkalaMenghadap ke ObjekBergerak Menuju TitikRangkuman: Bulan yang Mengorbit6GameObject dan Komponen
Referensi di InspectorMendapatkan KomponenKomponen yang HilangMenambahkan KomponenRequireComponentTampilkan dan SembunyikanRangkuman: Sakelar Lampu