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

42 ответов

50 просмотров

Думаю, нет

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 Автор вопроса

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

Да

.

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта