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

42 ответов

30 просмотров

Думаю, нет

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

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

Да

.

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

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

Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
Ребят, а вот такой вопрос: если я владелец бота анонимного чата, в котором, например, имеются подписки, используя какую-нибудь ЮКассу (или тому подобное, в общем с налогами, в...
Eugene Неелов
8
а давно такие жирные буквы в админке?
Миша
4
Гнева и тупости пост. Как блять можно работать с маркетологами? Их в детстве всех родители случайно цепляли об дверные откосы? Поступила таска, на сайте "лишний счетчик Google...
Igor
4
а у тг (бот) апи вообще есть статусная страница, кстати?
e\\/gen
5
Вообще сейчас эти все провайдеры облаков оборзели. Если тебе нужно 4 ядра и 4 гб., хер где такую конфигурацию найдешь. Суют тебе сразу либо 8гб. либоа сразу 16 гб., они мне на...
Igor
4
Всем привет. А никто не в курсе у бота может быть заблокированна возможность принимать звезды? На одном боте вызываю sendInvoice с нужными параметрами все ок, на втором дела...
John Doe
2
Карта сайта