С Новым годом! Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.06.2019
Сообщений: 5

Стрельба ИИ по игроку

15.11.2019, 10:19. Показов 7329. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте! Спасибо, что решили уделить мне время
Проблема такая: есть у меня ИИ, он лучник Лучник умеет преследовать игрока, умеет стрелять. Но стреляет он даже тогда, когда игрок находится за стеной. Нужно сделать так, чтобы лучник стрелял только тогда, когда считает, что попаданию по игроку быть, и не стоял как дуралей, расстреливая стену... Было пара идей: RayCast'ом проверял, если объект в точке попадания является игроком, то стало быть, можно делать выстрел. Проблема: он как-то узко работает, что ли... Если я поменяю положение игрока, то луч начинает бить мимо, несмотря на то, что лучник стоит перед игроком.
Вторая идея - сделать триггер как зону видимости и когда игрок в триггер входит, делать выстрел. Ну это не сработало, понятное дело: игрок может стоять за стеной, а триггер его всё же касается, а значит и стрельба становится возможной, хотя перед лучником стена. Надеюсь, объяснил я понятно. Хотелось бы услышать ваши предложения.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2019, 10:19
Ответы с готовыми решениями:

Движение к игроку
Всем привет:). Новичок в юнити поэтому кое-чего не понимаю. Есть префабы игрока и врага. Врага нужно научить следовать за игроком, я...

Движение к игроку
Сделал движение врага к игроку, но враг идет-идет и поднимается вверх. На картине изобразил путь врага Как изменить мой код, что враг не...

Шарик, движущийся к игроку
public Transform target; Rigidbody2D a; public Vector2 b; void Start () { a = GetComponent<Rigidbody2D>(); ...

6
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
15.11.2019, 12:41
Лучший ответ Сообщение было отмечено Delyalend как решение

Решение

Есть не только рейкаст, есть еще https://docs.unity3d.com/Scrip... eCast.html
А вообще если это лучник, то он может стрельнуть через стену (вверх) и стрела может попасть в игрока))
Тут очень много физических нюансов, лучше бы он стрелял с винтовки
1
0 / 0 / 0
Регистрация: 24.06.2019
Сообщений: 5
15.11.2019, 17:35  [ТС]
Точно, попробую применить либо Boxcast либо Spherecast, о результатах отпишу) К сожалению, нужен именно лучник) Винтовка не годится))
0
0 / 0 / 0
Регистрация: 24.06.2019
Сообщений: 5
18.11.2019, 14:22  [ТС]
Всё получилось, теперь лучник обходит стены чтобы он мог стрелять по игроку, правда, другие сложности возникли, но к делу они не относятся)

Вот пример кода:
C#
1
2
3
4
5
6
7
8
9
10
11
if(Physics.BoxCast(gameObject.transform.position, transform.lossyScale, transform.forward, out _hit, transform.rotation, _skeletonArcher.MaxDistanceForShoot))
         {
             if(_hit.transform.gameObject.tag == "Player")
             {
                _skeletonArcher.state = SkeletonArcher.State.Shoot;
             }
            else if (_hit.transform.gameObject.tag != "Player")
            {
                _skeletonArcher.state = SkeletonArcher.State.Follow;
            }
        }
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
18.11.2019, 15:02
Я бы лучше сделал симуляцию полета стрелы через linecast в разных углах, в разных отрезках времени полета. Это куда более затратно, однако в таком случае лучник может стрелять через верх стены не обходя ее, да и вообще не спотыкаясь об каждый камешек перед игроком))
1
0 / 0 / 0
Регистрация: 24.06.2019
Сообщений: 5
19.11.2019, 15:11  [ТС]
Ну, это не подходит) Игра от первого лица, будет не очень честно для игрока, если в него будут сверху падать стрелы) Если бы вид был сверху, то это ещё можно было бы понять)
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
19.11.2019, 15:16
А, ну тогда да
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2019, 15:16
Помогаю со студенческими работами здесь

Удар врага по игроку
Здравствуйте. Ни как не пойму как правильно сделать удары врага с задержкой. Он должен подойти к игроку и бить с задержками, ударил и...

Враг не наносит урон по игроку
Привет! Подскажите, в чём проблема? Нужно чтобы враг бил меня, если он подошёл ко мне, а на моём слайдере отнимались жизни, и игрок умирал....

Как привязать элемент канвоса к игроку в 3D ?
сначала хотел привязать к врагу в 3d над головой его нр, но ведь он же будет увеличиваться при близком положении к камере и не будет...

Наведение на ближайшего к игроку моба (NPC)
Всем привет, делаю бота к MMORPG, но не получается реализовать что бы бот атаковал ближайшего к игроку моба. На данном этапе поиск нужного...

Вывод информации из логов таблицы по игроку и админу
Доброго всем времени суток. С недавнего времени начал изучать PHP, но имею всего лишь малую часть предстовления о всём. Поэтому хотел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru