|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
|
Атака юнитами юнитов26.05.2021, 21:34. Показов 5890. Ответов 12
Доброго времени суток, не раз уже писал сюда, в том числе и в последние дня два), но возникают ситуации, в которых всё-таки хочется услышать совет. Пару раз мне уже подсказали,что очень помогло и за что я очень благодарен.
Суть вопроса: Юниты разных команд должны сражаться друг с другом, при этом один юнит должен фиксированно атаковать другого, пока он не умрёт, при их встрече друг с другом. Т.е. мне надо, чтобы атака распространялась на одного врага, а не на нескольких, как в случае, если сделать это триггером(могут несколько попасть в триггер юнита и получать урон). При этом всё происходит автоматически, т.е. игрок не указывает какому юниту какого врага атаковать. Как всё-таки мне сделать определение определённого врага среди множества, который будет ближе всех к союзному юниту и заставить атаковать его до тех пор, пока тот не умрёт, а после переключиться по такому же принципу на другого? Добавлено через 1 минуту Примечание: смотрел видеоролики на ютубе, в т.ч. англоязычные, не совсем "бум-бум", а иногда и весь принцип не подходит.
0
|
|
| 26.05.2021, 21:34 | |
|
Ответы с готовыми решениями:
12
Неразберуха с разными Юнитами Открытие проекта со всеми юнитами
|
|
гуглю вместо тебя
240 / 157 / 88
Регистрация: 20.05.2021
Сообщений: 436
|
|
| 26.05.2021, 22:27 | |
|
как раз вышел видос похожий, от одного юнитщика
на 23 минуте уже ищет ближайшего, явно не мегу крутой код, но там и не пытались сделать мега крутым, ну вдруг какую функцию не поймешь или гугли, или пиши Добавлено через 3 минуты ну вдруг какую функцию не поймешь или гугли, или пиши
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
|
| 26.05.2021, 22:48 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
||
| 28.05.2021, 16:12 [ТС] | ||
|
0
|
||
|
гуглю вместо тебя
240 / 157 / 88
Регистрация: 20.05.2021
Сообщений: 436
|
|||
| 28.05.2021, 17:03 | |||
|
SStorm, ну и, видео почти о том же, систему можно просто интерпретировать под себя
поскольку используется List, кто тебе запрещает сделать добавление в List новых таргетов если убрать условие что юнит должен долбить только свободного, но оставить условие при этом что ближайшего, то вот тебе и твой код будет P.S. ну и сама реализация агра зависит от типа игры, если например как tabs, то юнитов со всей карты собирать и там сортировать, если как варкрафт где на базе стоят юниты спокойно и ждут, то у них есть радиус агра, а потом уже включается поиск ближайшего, можно например реализовать с помощью Physics.OverlapSphere https://docs.unity3d.com/Scrip... phere.html на видео где-то на 11мин уже пишет оверлапсферу
1
|
|||
|
|
|||||||
| 28.05.2021, 19:15 | |||||||
Сообщение было отмечено SStorm как решение
РешениеКоментарии специально писал на русском:
3
|
|||||||
|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
|||
| 31.05.2021, 19:08 [ТС] | |||
|
Storm23, Слегка(сильно) затормозил с ответом. Тут, получается, идёт строгое разбиение по парам. А есть вариант, когда даже если уже есть юнит_1, который идёт в атаку на юнит_2, чтобы юнит_3 подключился и тоже атаковал юнит_2, вместе с юнит_1? Я дико извиняюсь за подобного рода вопросы, просто я вот действительно немного в такой "темноте" сейчас нахожусь с этим вопросом. Т.е. это как-то массивом обычным(либо листом) реализовать, чтобы быть оппонентом сразу для нескольких врагов?
Добавлено через 8 минут Прочитал сообщение raygman и понял, что он уже ответил на этот вопрос фразой: Правда как быть тогда с удалением себя из оппонента:
0
|
|||
|
гуглю вместо тебя
240 / 157 / 88
Регистрация: 20.05.2021
Сообщений: 436
|
||||||
| 31.05.2021, 19:24 | ||||||
|
SStorm, у Storm23 код работает по приоритету:
1) сначала на пары 2) если нет пары то ближайшего атакую ну по гифке если судить затести его код Добавлено через 5 минут а ошибся, по парам только, вообщем можешь вот здесь добавить else {} и тот же код с ифа, я код детально не читал его, но думаю норм
забудь я не читаю то что пишу видимо, такое взбрело что-то Добавлено через 2 минуты а да, ты можешь так сделать, только в Update тебе нужно будет закрыть поиск таргета когда он у тебя есть, а точнее вообще вынести его и сделать один раз вызов когда у тебя таргета умирает и на старте понятно что
1
|
||||||
|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
|
| 31.05.2021, 19:32 [ТС] | |
|
raygman, да, т.е. нет динамического обновления ближайшего врага. А ведь у юнитов может быть разная скорость и тот, кто был дальше, через секунду уже будет ближе. Но я думаю, что я могу это под себя сделать, просто задав определёный Range для юнита, в пределах которого врага можно будет записать в оппоненты, я пока это обмозговываю.
Добавлено через 4 минуты Я завтра прям плотненько займусь этим делом и отпишу по результатам. Как раз, может до завтра создатель кода сможет ещё накинуть идей или что-то вроде).
0
|
|
|
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
|||||||
| 03.06.2021, 18:46 | |||||||
|
В Update он проверяет - если оппонент жив, то бежать к нему. На близком расстоянии, перед ударом тоже проверяет - жив ли оппонент и бьёт его. Под эту идею, ниже переписанный код от Storm23
2
|
|||||||
|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
||
| 03.06.2021, 19:10 [ТС] | ||
|
samana, Привет, я уже переделал его код под свои нужды, но вот как раз нерешённым остался лишь этот вопрос. Дело в том, что поиск просто по дальности нахождения юнита - это хорошо, но я бы хотел использовать что-то более конкретное в этом плане, например, с какого расстояния между потенциальным оппонентом и нашим юнитом он будет вписан в эти самые оппоненты. Как можно указать какой-то Range в условиях работы c квадратом расстояния?
0
|
||
|
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
|
||
| 03.06.2021, 19:29 | ||
|
if (distSqr < bestDistance && distSqr <= Range*Range)
1
|
||
|
0 / 0 / 0
Регистрация: 15.10.2020
Сообщений: 42
|
|
| 03.06.2021, 19:38 [ТС] | |
|
0
|
|
| 03.06.2021, 19:38 | |
|
Помогаю со студенческими работами здесь
13
Взаимодействие между юнитами в игре Передача record между юнитами Реализация заработка игровыми юнитами Как передавать массив между тремя юнитами
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|