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.
Desafio
FácilDê 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 registraDoor closed. - Chest: o primeiro uso registra
Found 5 coins(seu valor decoins, definido no Inspector) e a esvazia. Todos os usos posteriores registramThe chest is empty. - Lever: cada uso alterna
bridge(um GameObject definido no Inspector, oculto no início) entre ligado e desligado, e registraLever pulled. - Interactor, no Player: quando a barra de espaço for pressionada (leia a entrada com
Keyboard.currentdo Input System), encontre os colliders dentro dereach(1.5) comPhysics.OverlapSpheree chameInteract()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
1Componentes, não hierarquias
Componentes pequenosUm script-base para inimigosComponentes abstratosComponentes trabalhando juntosRevisão: Torre modular4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de Loot7Máquinas de Estados
Estados como ClassesUma Máquina de EstadosTransiçõesInteligências dos InimigosRevisão: Estados da Porta10Projeto: Sobrevivente da Arena
O HeróiTipos de Inimigos5ScriptableObjects
Assets de dadosAtributos das armasConfigurações compartilhadasOndas como dadosRevisão: banco de dados de itens