Menu
CoddyTech

Repaso: tecla de interacción

Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 9 de 50.

challenge icon

Desafío

Fácil

Dale al jugador una tecla para interactuar. Las flechas mueven al Player (Mover.cs, listo), y la barra espaciadora usa el objeto más cercano que esté al alcance y se pueda usar. Escribe las partes:

  • IInteractable: una interfaz con un método, void Interact().
  • Door: cada uso la abre o la cierra. Al abrirla, gira 90 grados alrededor del eje y y registra Door opened; al cerrarla, gira de vuelta y registra Door closed.
  • Chest: el primer uso registra Found 5 coins (sus coins, que configura el Inspector) y la vacía. Cada uso posterior registra The chest is empty.
  • Lever: cada uso activa o desactiva bridge (un GameObject que configura el Inspector y que está oculto al inicio) y registra Lever pulled.
  • Interactor, en el Player: cuando se pulsa la barra espaciadora (léela con Keyboard.current del Input System), encuentra los colliders dentro de reach (1.5) con Physics.OverlapSphere y llama a Interact() en el que tenga un IInteractable y cuya posición esté más cerca del jugador. Si no hay nada al alcance, no pasa nada.

Pulsa Play, camina y usa todo, y luego pulsa Check.

Pruébalo tú mismo

using UnityEngine;
using UnityEngine.InputSystem;

// Space utiliza el objeto más cercano que esté a su alcance.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;
}

Todas las lecciones de Arquitectura de juegos en Unity