Menu
CoddyTech

Podsumowanie: FindNearest

Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 36 z 50.

challenge icon

Wyzwanie

Średni

Robot sprzątający zbiera klejnoty, a następnie idzie się naładować. Gem i ChargePad to puste skrypty znacznikowe (gotowe), a robot ma metodę MoveTo(point), która przesuwa go w stronę punktu z prędkością speed i zwraca true, gdy robot dotrze na miejsce.

  • W pliku Helpers.cs napisz klasę statyczną Helpers z metodą generyczną FindNearest<T>(IEnumerable<T> items, Vector3 from) dla dowolnego typu komponentu. Zwraca ona element, którego pozycja jest najbliżej from, albo null, gdy nie ma żadnych elementów.
  • W pliku Robot.cs robot w każdej klatce kieruje się do najbliższego klejnotu na scenie, licząc od miejsca, w którym się znajduje, i niszczy klejnot po dotarciu do niego.
  • Gdy nie zostaną już żadne klejnoty, robot kieruje się do najbliższego ChargePad. Po dotarciu wyświetla w logu Charging jeden raz i zostaje na miejscu.

Użyj FindNearest zarówno dla klejnotów, jak i dla platform. Naciśnij Play, obserwuj robota, a następnie Check.

Spróbuj swoich sił

using System.Collections.Generic;
using UnityEngine;

// Helpers.FindNearest<T>: element najbliższy danemu punktowi albo null

Wszystkie lekcje w sekcji Architektura gier w Unity