Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Walker 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;
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Scripting Unity