Revisão: mais próximo ao alcance
Parte da seção Arquitetura de Jogos no Unity do Journey de Unity da Coddy. Lição 11 de 64.
Este capítulo usou interfaces para que um único script possa funcionar com coisas que não compartilham nada além de um método. A tecla de interação agora seleciona a mais próxima delas.
Desafio
FácilA tecla Espaço deve usar o objeto mais próximo, não o primeiro.
- Em
Interactor, antes do loop, adicioneIInteractable nearest = null;efloat best = Mathf.Infinity;. - No loop, mantenha o objeto cuja
Vector3.Distanceaté o jogador seja menor quebest, junto com sua distância. - Após o loop, chame
nearest.Interact()senearestnão for null.
Pressione “Jogar”, fique entre o baú e a alavanca e pressione Espaço: a alavanca será acionada. Depois, pressione “Verificar”.
Experimente você mesmo
using UnityEngine;
using UnityEngine.InputSystem;
// Space usa a primeira coisa ao alcance.
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;
}
}
}
}
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Arquitetura de Jogos no Unity
1Componentes, não hierarquias
Componentes pequenosUm script base de inimigoComponentes abstratosComponentes trabalhando juntosRevisão: torre modularRevisão: canhão duplo4Dados Serializados
Classes SerializáveisListas no InspectorEnums no InspectorRevisão: Tabela de LootRevisão: Sorteie o Loot2Interfaces no Unity
IDamageableInterfaces e TryGetComponentGetComponentsRevisão: tecla de interaçãoRevisão: mais próximo ao alcance5ScriptableObjects
Ativos de DadosAtributos da ArmaConfigurações CompartilhadasSalve o VentoOndas como DadosRevisão: Banco de ItensRevisão: Comprar na LojaPratique por conta própria: Playground de Unity