Menu
CoddyTech

Revisão: FindNearest

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

challenge icon

Desafio

Médio

Um 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ática Helpers com um método genérico FindNearest<T>(IEnumerable<T> items, Vector3 from) para qualquer tipo de componente. Ele retorna o item cuja posição está mais próxima de from, 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 ChargePad mais próximo. Ao chegar, registra Charging uma 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