Ö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.
Görev
KolayBoşluk tuşu ilk nesneyi değil, en yakındaki nesneyi kullanmalı.
Interactoriçinde, döngüden önceIInteractable nearest = null;vefloat best = Mathf.Infinity;ekle.- Döngüde, oyuncuya olan
Vector3.Distancedeğeribestdeğerinden küçük olan her nesneyi mesafesiyle birlikte sakla. - Döngüden sonra,
nearestnull değilsenearest.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;
}
}
}
}
}
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
1Kalıtım Değil, Bileşenler
Küçük BileşenlerTemel Düşman Script'iSoyut BileşenlerBirlikte Çalışan BileşenlerTekrar: Modüler TaretTekrar: Çift Namlulu Top4Serileştirilmiş Veriler
Serileştirilebilir SınıflarInspector'da ListelerInspector'da Enum'larTekrar: Ganimet TablosuTekrar: Ganimeti At2Unity'de Arayüzler
IDamageableArayüzler ve TryGetComponentGetComponentsÖzet: Etkileşim TuşuÖzet: Erişim Mesafesindeki En Yakın5ScriptableObjects
Veri VarlıklarıSilah İstatistikleriOrtak AyarlarRüzgârı KaydetVeri Olarak DalgalarTekrar: Eşya VeritabanıTekrar: Dükkândan Satın Al8Yeniden Kullanılabilir Kod
Genişletme MetotlarıGeneric SingletonGeneric YardımcılarTekrar: FindNearestKendi başına pratik yap: Unity playground