Podsumowanie: FindNearest
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 36 z 50.
Wyzwanie
ŚredniRobot 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.csnapisz klasę statycznąHelpersz metodą generycznąFindNearest<T>(IEnumerable<T> items, Vector3 from)dla dowolnego typu komponentu. Zwraca ona element, którego pozycja jest najbliżejfrom, albo null, gdy nie ma żadnych elementów. - W pliku
Robot.csrobot 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 loguChargingjeden 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
1Komponenty, nie hierarchie
Małe komponentyPodstawowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPodsumowanie: modułowa wieżyczka4Dane serializowane
Klasy serializowalneListy w InspectorzeWyliczenia w InspectorzePodsumowanie: tabela łupów10Projekt: Arena przetrwania
BohaterTypy wrogów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPodsumowanie: klawisz interakcji5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaFale jako danePowtórka: baza danych przedmiotów8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearest