Cześć, dzisiaj opiszę problem na który natknąłem się przy tworzeniu projektu gry typu Tower Defense oraz jak go rozwiązałem.
Wyzwanie pojawia się przy próbie uszeregowania aktorów na podstawie ich bliskości do celu. Pierwsze rozwiązanie, które przychodzi na myśl, to proste obliczenie odległości między aktorem, a celem. Jest na to nawet specjalny node „Get Distance To„.


Na pierwszy rzut oka jest to proste, jako cel wyznaczasz miejsce docelowe trasy, odczytujesz aktualną pozycję aktorów i wyznaczasz każdego na podstawie jego odległości.


Niestety „Get Distance To” nigdy nie weźmie pod uwagę tego, że droga nie zawsze jest prosta, w efekcie jako pierwszy wybierany jest aktor który jest najbliżej celu w linii prostej, nie ten który jest najbliżej celu względem wyznaczonej trasy.
Finalny Wynik
Tak wygląda finalny system ustalania rankingów wśród aktorów. Jednostki strzelające zawsze wybierają pierwszego wroga czyli tego który jest najbliżej mety.