Riepilogo: il più vicino a portata
Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 11 di 64.
Questo capitolo ha usato le interfacce affinché uno script possa funzionare con elementi che non hanno nulla in comune, a parte un metodo. Ora il tasto di interazione seleziona quello più vicino.
Sfida
FacileLa barra spaziatrice dovrebbe usare l'oggetto più vicino, non il primo.
- In
Interactor, prima del ciclo, aggiungiIInteractable nearest = null;efloat best = Mathf.Infinity;. - Nel ciclo, mantieni l'oggetto la cui
Vector3.Distancedal giocatore è inferiore abest, insieme alla sua distanza. - Dopo il ciclo, chiama
nearest.Interact()senearestnon è null.
Premi «Gioca», mettiti tra il forziere e la leva e premi la barra spaziatrice: la leva viene tirata. Poi premi «Verifica».
Provalo tu
using UnityEngine;
using UnityEngine.InputSystem;
// Space usa il primo oggetto a portata di mano.
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;
}
}
}
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Architettura dei giochi in Unity
1Componenti, non gerarchie
Componenti piccoliUno script base per i nemiciComponenti astrattiComponenti che collaboranoRipasso: torretta modulareRipasso: cannone doppio4Dati serializzati
Classi serializzabiliElenchi nell'InspectorEnum nell'InspectorRiepilogo: tabella del bottinoRiepilogo: tira il bottino2Interfacce in Unity
IDamageableInterfacce e TryGetComponentGetComponentsRiepilogo: tasto InteragisciRiepilogo: il più vicino a portata5ScriptableObjects
Asset di datiStatistiche delle armiImpostazioni condiviseSalva il ventoOnde come datiRiepilogo: database degli oggettiRiepilogo: comprare dal negozioEsercitati da solo: Playground Unity