Ребзята. Как думаете, я правильно реализовал "смерть врага" от пуль?

42 ответов

46 просмотров

Думаю, нет

Sulim-Skrytny Автор вопроса

Подскажешь почему так думаешь?

Сравнение по тегу, использование destroy вместо setactive, игрок сам решает, сколько ему за отнять, а не пуля, сравнение <1, когда <= 0 логичнее

И плюс обработка столкновения должна быть в пуле, а не в игроке То есть тег не пуля, а плеер

Sulim-Skrytny Автор вопроса

1. Сравнение по тегу неправильно?... а что использовать вместо него? Я просто по туториалу делал. 2. Вместо уничтожения(удаления) объектов нужно их отключать, но если врагов будет много, то ведь в иерархии отключенных лишних объектов тоже станет много, с эти что то нужно сделать или норм? 3. Как понять то, что не пуля, а игрок решает сколько ХП отнять? 4. Насчет условия понятно)

+

Сравнение по тегу делается почти по всех гайдах Проверка на компонент

+, или CompareTag на крайняк

Ну когда ты играешь, ты видишь эти иерархию?

Sulim-Skrytny Автор вопроса

Наверное в сравнении по тэгу есть свои недостатки и подводные камни, просто я пока их не заметил)

1. Сравнение по компоненту. У пули должен быть свой компонент. 2. Пофиг. Можешь их спавнить как дочерние объекты какой-то пустышки и будет тебе счастье. 3. У пули должен быть свой компонент, в котором и будет прописан урон, а у игрока интерфейс взаимодействия для нанесения и обработки получения урона.

Sulim-Skrytny Автор вопроса

Нет, но от того что они там есть кажется что это давит на оптимизацию, но думаю если они отключены, то оптимизации вообще без разницы)

У плеера делаешь публичный метод TakeDamage(float damage) { health-= damage; } Ну и проверку на <= 0

Сравнение стрингов — тот самый подводный камень. Легко ошибиться. Сравнение по компоненту — наше всё

Ну затратнее удалить объект чем просто выключить его

Sulim-Skrytny Автор вопроса

)) Сейчас нужно переварить все что вы сказали и улучшить свой код)

И создатт его тоже)

Sulim-Skrytny Автор вопроса

То есть урон должен обрабатывать пуля а не враг? У меня в скрипте пули написано лишь движение, в скрипте врага приближение к игроку и самоотключение в момент столкновения с пульками... Осталось разобраться как именно сделать сравнение по компоненту, и прописать там урон, а у игрока сделать интерфейс взаимодействия для нанесения и обработки получения урона))

Пуля его должна наносить, а игрок обрататывать

GetType

https://github.com/ViktorKorkishko/RetroStyleGamesTestTask посмотри вот тут

collision.gameobject.TryGetComponent(out Player player)

Делают пулы не потому что затратно удалять а потому что затратно создавать

Это само собой

У пули есть поле Дамаг. Ты у пули во время Колизии с игроком вызываешь метод TakeDamage и передаешь туда этот урон

Sulim-Skrytny Автор вопроса

Большой Thanks всем, щас стараюсь кое-что налепить)

Подожди, предлагаешь, чтобы пуля обрабатывала коллизию?

Ну да, ты когда головой в стенку влетаешь, ты же определяешь что влетел в стенку а не стена что ты в нее влетел

Sulim-Skrytny Автор вопроса

Тип health тоже должен быть типа float ?

Это на твоё усмотрение

Мне казалось, что логичнее противник. Но хз, может ты и прав

Sulim-Skrytny Автор вопроса

Переменную health создать в скрипте Player куда я написал тот метод?)

Ну здоровье у кого, у пули или у игрока?

Sulim-Skrytny Автор вопроса

Здоровье у врага)

А вообще для этого по идее надо сначала определиться Дамаг у тебя инт или флоат и от этого плясать

Sulim-Skrytny Автор вопроса

int'овый

Sulim-Skrytny Автор вопроса

Если погибать от пуль должен не игрок, а враг, зачем этот метод находится в игроке? +переменная health у меня подсвечивается красным потому что не объявлен. Его в скрипте игрока объявлять чтоль? Или объявить в скрипте врага и получать и в скрипте игрока обращаться к переменной из скрипта врага?.... Прошу прошения за идиотские вопросы конечно же, но все равно хочется понять и написать более-менее нормальный код...

Ну получать урон может как игрок так и враг следовательно у обоих должен быть этот метод

Поле Хелс должно быть у игрока и у врага

Sulim-Skrytny Автор вопроса

Это проверка вместо проверки по тегу ?

Да

.

Похожие вопросы

Обсуждают сегодня

Как думаете через какой сервис они верифицируют?
inc.
5
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
На чём в основном щас пишут мини апы? Vuejs?
Goot evening Not everyone
6
Вопрос: Здравствуйте! У меня возникла проблема с использованием плагина Mall в OctoberCMS. Я использую все файлы и компоненты в их исходном виде, без изменений. Однако на стр...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
8
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
9
🙋 Ребята, всем привет. Поправил задачу: Нужно каждому новому сообщению (1 раз по каждому юзеру) в чате прибавлять снизу кнопку с предложением подписаться на канал. Как добавит...
Alexander
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Карта сайта