Menu
CoddyTech

Ringkasan: Terdekat dalam Jangkauan

Termasuk bagian Arsitektur Game di Unity dalam perjalanan Unity di Coddy. Pelajaran 11 dari 64.

Bab ini menggunakan interface agar satu skrip dapat bekerja dengan berbagai hal yang hanya memiliki satu kesamaan, yaitu sebuah method. Sekarang, tombol interaksi memilih yang terdekat di antara semuanya.

challenge icon

Tantangan

Mudah

Tombol Space seharusnya menggunakan benda terdekat, bukan benda pertama.

  1. Di Interactor, sebelum perulangan, tambahkan IInteractable nearest = null; dan float best = Mathf.Infinity;.
  2. Di dalam perulangan, simpan benda apa pun yang jarak Vector3.Distance-nya dari pemain kurang dari best, beserta jaraknya.
  3. Setelah perulangan, panggil nearest.Interact() jika nearest tidak null.

Tekan tombol “Main”, berdirilah di antara peti dan tuas lalu tekan Space: tuas tertarik. Kemudian tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;
using UnityEngine.InputSystem;

// Tombol Space berinteraksi dengan hal pertama yang berada dalam jangkauan.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;

    void Update()
    {
        if (Keyboard.current.spaceKey.wasPressedThisFrame)
        {
            foreach (Collider c in Physics.OverlapSphere(transform.position, reach))
            {
                if (c.TryGetComponent(out IInteractable thing))
                {
                    thing.Interact();
                    return;
                }
            }
        }
    }
}
quiz iconUji dirimu

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

Semua pelajaran di Arsitektur Game di Unity

Latihan sendiri: Playground Unity