Судячи з того, що @davidluzgouveia прокоментував анонімний пост, я підберу проект. Дослідження шляхів та пошук шляхів дуже різні. Пошук шляху - це більше те, що анонімно публікував, і для пошуку шляху я заглянув у алгоритм Діккстри. Для наступного шляху я повністю використовую вибраний вами двигун фізики. Як я це налаштував, це те, що кожне місце розташування підрозділу класу одиниць встановлюється в його підкласі маршруту через 2D зміщення, так, вони 2D, а не 3D це через те, що я мою фізику налаштував у своїй грі .
3D-пояснення: у
кожному блоці є лише один головний колайдер, який призначений виключно для зіткнення з місцевістю та світовими об'єктами. Це форма капсули, має радіус і висоту програмно кажучи. Він побудований в центрі моделі і повинен простягатися прямо повз передню і верхню частину моделі. Але у мене також є зміщення поверхні для того, наскільки воно далеко від землі в усі часи, і поплавок того, наскільки дозволяється ковзати вниз, перш ніж трохи підстрибувати вгору. Це звучить так, що я застосовую якесь викручене виправлення для проблеми зіткнення місцевості, але у мене є свої причини.
У будь-якому випадку слід застосувати силу до цього предмета капсули, і він повинен залишатися колись над землею. Це не означає, що він не може піднятися вище, просто що він не може йти нижче. Причина, за якою потрібно зависнути (у моєму випадку), полягає в тому, що в жорсткому двигуні фізики та регдолла ноги моїх підрозділів є процедурно оживленими. Таким чином, приклавши просту силу до капсули, ноги моєї сутності перестановлять себе самостійно. Вони також матимуть свої окремі програми тяжкості! Це дозволяє зробити те, що якщо мій персонаж знаходиться на нахилі, одна нога може бути на більш низькому підйомі, ніж інша.
Саме так ви повинні це зробити. Судячи з того, що ви просите, що це таке. Якщо ви хочете залишити деякі функції, це, очевидно, добре, особливо якщо це RTS або FPS, і ніхто ніколи не побачить одиниці ніг або догляд у будь-якому разі. Але загалом у підрозділі повинен бути один ОСНОВНИЙ зіткнення об'єкт, який працює з рухом персонажа майже виключно.
Зокрема, 2D:
Ви все ще повинні мати головну точку чи просто якусь орієнтир, щоб двигун пересувався, що є для руху агрегату. Ви можете дати кожному підрозділу підклас контуру, який має декілька місцеположень, які йому потрібно пройти, ви можете вказати його в коді рівня (наприклад, location1 (x, y) location2 (x, y) і т.д.) найкращим способом (я розумію я не знаю, над якою грою ви працюєте), ймовірно, було б вказати місця на рівні, і кожне підрозділ буде обробляти їх у порядку, визначеному рівнем, і після досягнення кожного місця, чи замінить його бажаним місцем на наступний, до якого потрібно дістатися.
Існує багато способів, як ви могли це змінити, як, наприклад, перелік локацій в першу чергу для кожної одиниці, оскільки це означало б, що не всі одиниці повинні їхати в ті самі місця. Однак, таким же чином, ви можете зробити це і в коді рівня (unit1.location1 (x, y) unit1.location2 (x, y) grunt.l1 (x, y) knight.loc3 (x, y) що завгодно)
Всього кілька ідей! Я пропоную вам прочитати тривимірну версію, хоча вона набагато менш актуальна.
EDIT: Я вирішив просто подати обидва для тих, хто міг би прочитати це (Так, це правда) .... (Спочатку я лише закинув ваше запитання і не зрозумів, що це досить двовимірне, поки я не перечитав його.>>)