Jarak Antarobjek
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 28 dari 85.
Vector3.Distance(a, b) menunjukkan jarak antara dua titik dalam satuan, diukur dalam garis lurus pada ketiga sumbu. Nilai 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 sebuah angka agar skrip tahu saat sesuatu berada dekat. Camper ini hanya bisa menghangatkan tangannya jika berada dalam jarak 4 satuan dari api unggun, yang posisinya diatur 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 berjarak 5 satuan darinya, bukan 0. Jika ketinggian tidak perlu dihitung, bandingkan dua titik dengan nilai y yang sama.
Tantangan
MudahPerlambat karakter menjadi setengah kecepatan di rawa.
- Di bawah
float s = speed;, tulisif (Vector3.Distance(transform.position, swamp) < 3f). - Di dalamnya, atur
s = speed / 2;. Biarkan fieldspeeddan baris pergerakan seperti semula.
Tekan tombol “Main” dan berjalanlah ke kanan melewati rawa: karakter akan melambat di dalamnya. Lalu tekan tombol “Periksa”.
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;
// Jika berada dalam jarak 3 unit dari swamp, bergeraklah dengan setengah kecepatan.
Vector3 direction = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
transform.position += direction.normalized * s * Time.deltaTime;
}
}
Semua pelajaran di Dasar-Dasar Scripting Unity
1Dasar-Dasar C# di Unity
Halo, UnityVariabelDesimal Memerlukan fTeks di ConsoleVariabel yang Menyimpan NilaiIf dan ElseBandingkan AngkaUlasan: Pengumpul Koin7Perulangan dan method
Ulangi dengan forPerulangan di dalam perulanganTulis methodMethod yang Mengembalikan NilaiarrayUlasan: Tangga10Menemukan Benda
Cari Berdasarkan NamaTagCari Berdasarkan TipeReferensi Lebih Baik daripada FindNull di UnityRangkuman: Koin Terdekat13Proyek: Hindari Balok
Karakter PelariBalok dari Langit2Buat Bergerak
Tempatkan KubusBergerak Setiap FrameBerputar Setiap DetikKemudikan dengan TombolRangkuman: Kemudikan Kubus5Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak AntarobjekVector3 adalah StructRangkuman: Pilot Drone8GameObjects dan Komponen
Referensi di InspectorAmbil KomponenKomponen yang HilangTambahkan KomponenRequireComponentTampilkan dan SembunyikanRingkasan: Sakelar Lampu6Transformasi dan Hierarki
Objek Induk dan AnakKibarkan BenderaSkalaMelihat BendaBergerak Menuju TitikRekap: Bulan yang MengorbitLatihan sendiri: Playground Unity