Menu
CoddyTech

Özet: Erişim Mesafesindeki En Yakın

Coddy'nin Unity Journey'sinin Unity'de Oyun Mimarisi bölümünün bir parçası. Ders 11 / 64.

Bu bölümde, tek bir betiğin yalnızca bir yöntemi ortak olan nesnelerle çalışabilmesi için arayüzler kullanıldı. Etkileşim tuşu artık bunlardan en yakın olanı seçiyor.

challenge icon

Görev

Kolay

Boşluk tuşu ilk nesneyi değil, en yakındaki nesneyi kullanmalı.

  1. Interactor içinde, döngüden önce IInteractable nearest = null; ve float best = Mathf.Infinity; ekle.
  2. Döngüde, oyuncuya olan Vector3.Distance değeri best değerinden küçük olan her nesneyi mesafesiyle birlikte sakla.
  3. Döngüden sonra, nearest null değilse nearest.Interact() çağır.

“Oyna” düğmesine bas, sandıkla kolun arasında dur ve Boşluk tuşuna bas: kol çekilir. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;
using UnityEngine.InputSystem;

// Space, erişim mesafesindeki ilk şeyi kullanır.
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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Unity'de Oyun Mimarisi bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground