Думаю, нет
Подскажешь почему так думаешь?
Сравнение по тегу, использование destroy вместо setactive, игрок сам решает, сколько ему за отнять, а не пуля, сравнение <1, когда <= 0 логичнее
И плюс обработка столкновения должна быть в пуле, а не в игроке То есть тег не пуля, а плеер
1. Сравнение по тегу неправильно?... а что использовать вместо него? Я просто по туториалу делал. 2. Вместо уничтожения(удаления) объектов нужно их отключать, но если врагов будет много, то ведь в иерархии отключенных лишних объектов тоже станет много, с эти что то нужно сделать или норм? 3. Как понять то, что не пуля, а игрок решает сколько ХП отнять? 4. Насчет условия понятно)
+
Сравнение по тегу делается почти по всех гайдах Проверка на компонент
+, или CompareTag на крайняк
Ну когда ты играешь, ты видишь эти иерархию?
Наверное в сравнении по тэгу есть свои недостатки и подводные камни, просто я пока их не заметил)
1. Сравнение по компоненту. У пули должен быть свой компонент. 2. Пофиг. Можешь их спавнить как дочерние объекты какой-то пустышки и будет тебе счастье. 3. У пули должен быть свой компонент, в котором и будет прописан урон, а у игрока интерфейс взаимодействия для нанесения и обработки получения урона.
Нет, но от того что они там есть кажется что это давит на оптимизацию, но думаю если они отключены, то оптимизации вообще без разницы)
У плеера делаешь публичный метод TakeDamage(float damage) { health-= damage; } Ну и проверку на <= 0
Сравнение стрингов — тот самый подводный камень. Легко ошибиться. Сравнение по компоненту — наше всё
Ну затратнее удалить объект чем просто выключить его
)) Сейчас нужно переварить все что вы сказали и улучшить свой код)
И создатт его тоже)
То есть урон должен обрабатывать пуля а не враг? У меня в скрипте пули написано лишь движение, в скрипте врага приближение к игроку и самоотключение в момент столкновения с пульками... Осталось разобраться как именно сделать сравнение по компоненту, и прописать там урон, а у игрока сделать интерфейс взаимодействия для нанесения и обработки получения урона))
Пуля его должна наносить, а игрок обрататывать
GetType
https://github.com/ViktorKorkishko/RetroStyleGamesTestTask посмотри вот тут
collision.gameobject.TryGetComponent(out Player player)
Делают пулы не потому что затратно удалять а потому что затратно создавать
Это само собой
У пули есть поле Дамаг. Ты у пули во время Колизии с игроком вызываешь метод TakeDamage и передаешь туда этот урон
Большой Thanks всем, щас стараюсь кое-что налепить)
Подожди, предлагаешь, чтобы пуля обрабатывала коллизию?
Ну да, ты когда головой в стенку влетаешь, ты же определяешь что влетел в стенку а не стена что ты в нее влетел
Тип health тоже должен быть типа float ?
Это на твоё усмотрение
Мне казалось, что логичнее противник. Но хз, может ты и прав
Переменную health создать в скрипте Player куда я написал тот метод?)
Ну здоровье у кого, у пули или у игрока?
Здоровье у врага)
А вообще для этого по идее надо сначала определиться Дамаг у тебя инт или флоат и от этого плясать
int'овый
Если погибать от пуль должен не игрок, а враг, зачем этот метод находится в игроке? +переменная health у меня подсвечивается красным потому что не объявлен. Его в скрипте игрока объявлять чтоль? Или объявить в скрипте врага и получать и в скрипте игрока обращаться к переменной из скрипта врага?.... Прошу прошения за идиотские вопросы конечно же, но все равно хочется понять и написать более-менее нормальный код...
Ну получать урон может как игрок так и враг следовательно у обоих должен быть этот метод
Поле Хелс должно быть у игрока и у врага
Это проверка вместо проверки по тегу ?
Обсуждают сегодня