Menu
CoddyTech

Revisão: tecla de interação

Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 9 de 50.

challenge icon

Desafio

Fácil

Dê ao jogador uma tecla de interação. As setas movem o Player (Mover.cs, pronto), e a barra de espaço usa o objeto mais próximo ao alcance que possa ser usado. Escreva as partes:

  • IInteractable: uma interface com um método, void Interact().
  • Door: cada uso a abre ou fecha. Ao abrir, gira 90 graus em torno do eixo y e registra Door opened; ao fechar, gira de volta e registra Door closed.
  • Chest: o primeiro uso registra Found 5 coins (seu valor de coins, definido no Inspector) e a esvazia. Todos os usos posteriores registram The chest is empty.
  • Lever: cada uso alterna bridge (um GameObject definido no Inspector, oculto no início) entre ligado e desligado, e registra Lever pulled.
  • Interactor, no Player: quando a barra de espaço for pressionada (leia a entrada com Keyboard.current do Input System), encontre os colliders dentro de reach (1.5) com Physics.OverlapSphere e chame Interact() naquele que tiver um IInteractable e cuja posição for a mais próxima do jogador. Se não houver nada ao alcance, nada acontece.

Pressione Jogar, caminhe por aí e use tudo; depois, Verificar.

Experimente você mesmo

using UnityEngine;
using UnityEngine.InputSystem;

// Space usa o objeto mais próximo ao alcance.
public class Interactor : MonoBehaviour
{
    public float reach = 1.5f;
}

Todas as lições de Arquitetura de jogos no Unity