Menu
CoddyTech

Riepilogo: tasto Interact

Fa parte della sezione Architettura dei giochi in Unity del percorso Unity di Coddy. Lezione 9 di 50.

challenge icon

Sfida

Facile

Assegna al giocatore un tasto per interagire. Le frecce muovono il giocatore (Mover.cs, già pronto) e la barra spaziatrice usa l'oggetto più vicino entro la portata che può essere usato. Scrivi le parti:

  • IInteractable: un'interfaccia con un metodo, void Interact().
  • Door: a ogni utilizzo si apre o si chiude. Quando si apre ruota di 90 gradi attorno all'asse y e registra Door opened; quando si chiude ruota all'indietro e registra Door closed.
  • Chest: al primo utilizzo registra Found 5 coins (il suo valore coins, impostato nell'Inspector) e si svuota. A ogni utilizzo successivo registra The chest is empty.
  • Lever: a ogni utilizzo attiva o disattiva bridge (un GameObject impostato nell'Inspector, nascosto all'inizio) e registra Lever pulled.
  • Interactor, sul giocatore: quando viene premuta la barra spaziatrice (leggila con Keyboard.current dell'Input System), trova i collider entro reach (1.5) con Physics.OverlapSphere e chiama Interact() su quello che ha un IInteractable e la cui posizione è la più vicina al giocatore. Se non c'è nulla a portata, non succede niente.

Premi Gioca, cammina e usa tutto, poi premi Verifica.

Provalo tu

using UnityEngine;
using UnityEngine.InputSystem;

// Space usa l'oggetto più vicino a portata.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;
}

Tutte le lezioni di Architettura dei giochi in Unity