Revisão: FindNearest
Parte da seção Arquitetura de jogos no Unity do Journey de Unity da Coddy. Lição 36 de 50.
Desafio
MédioUm robô de limpeza coleta gemas e depois vai carregar. Gem e ChargePad são scripts marcadores vazios (prontos), e o robô tem MoveTo(point), que o move em direção a um ponto com speed e retorna true quando ele chega lá.
- Em
Helpers.cs, escreva uma classe estáticaHelperscom um método genéricoFindNearest<T>(IEnumerable<T> items, Vector3 from)para qualquer tipo de componente. Ele retorna o item cuja posição está mais próxima defrom, ou null quando não há itens. - Em
Robot.cs, a cada quadro o robô vai em direção à gema mais próxima na cena, a partir de onde está agora, e destrói a gema quando chega até ela. - Quando não restarem gemas, o robô vai em direção ao
ChargePadmais próximo. Ao chegar, registraCharginguma vez e fica lá.
Use FindNearest tanto para as gemas quanto para os pads. Pressione Play, observe o robô e depois Check.
Experimente você mesmo
using System.Collections.Generic;
using UnityEngine;
// Helpers.FindNearest<T>: o item mais próximo de um ponto, ou null
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 itens8Código Reutilizável
Métodos de ExtensãoUm Singleton GenéricoMétodos Auxiliares GenéricosRevisão: FindNearest