Jarak antara Benda
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 21 dari 67.
Vector3.Distance(a, b) menunjukkan seberapa jauh jarak antara dua titik, dalam satuan, yang diukur sebagai garis lurus melalui ketiga sumbu. Ini adalah panjang langkah di antara keduanya, (a - b).magnitude, jadi urutan a dan b tidak berpengaruh. Jarak dari (0, 0, 0) ke (3, 0, 4) adalah 5.
Bandingkan jarak dengan angka, maka skrip akan mengetahui saat sesuatu berada dekat. Camper ini hanya bisa menghangatkan tangannya dalam jarak 4 satuan dari api unggun, yang posisinya ditetapkan oleh Inspector:
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");
}
}Jarak juga menghitung ketinggian: camper yang berada 5 satuan di atas api unggun berjarak 5 satuan darinya, bukan 0. Jika ketinggian tidak perlu dihitung, bandingkan dua titik dengan nilai y yang sama.
Tantangan
MudahWalker melintasi rawa. Dalam jarak 3 unit dari pusat rawa, swamp (diatur di Inspector), Walker bergerak dengan setengah speed-nya; lebih jauh dari itu, Walker bergerak dengan kecepatan penuh. Kode pergerakannya sudah ditulis: tentukan kecepatan yang akan digunakan pada setiap frame, dan biarkan field speed tetap tidak berubah.
Tekan Play dan berjalanlah melewati rawa, lalu tekan Check.
Coba sendiri
using UnityEngine;
public class Walker : MonoBehaviour
{
public float speed = 4f;
public Vector3 swamp = new Vector3(0, 0.5f, 0);
void Update()
{
float s = speed;
// Saat berada dalam jarak 3 unit dari rawa, bergeraklah dengan setengah kecepatan.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
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