34 / 30 / 8
Регистрация: 22.02.2017
Сообщений: 404
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Двойной урон27.09.2018, 18:36. Показов 1744. Ответов 12
Метки нет Все метки)
(
При попадании, наноситься двойной урон.
Метод ApplyDamage почему-то вызывается два раза. P.S. Пуля при поподании уничтожается.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
27.09.2018, 18:36 | |
Ответы с готовыми решениями:
12
Урон от соприкосновения Урон от взрыва гранаты Урон от падения с высоты
|
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
|
|
27.09.2018, 20:22 | 2 |
NotGoodEnough, а где он вызывается? Если при вхождении в триггер либо коллайдер то проблема может быть из-за двух вызовов, там нужно будет добавить булевую переменую на проверку.
0
|
34 / 30 / 8
Регистрация: 22.02.2017
Сообщений: 404
|
|
27.09.2018, 20:23 [ТС] | 3 |
RostikTawer, При поподании в объект, то есть через Raycast
0
|
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
|
|
27.09.2018, 20:40 | 4 |
NotGoodEnough, сначало проверь все варианты ниже:
1) У тебя нигде не висит два скрипта; 2) У тебя это должно вызывать только один кадр; 3) У тебя нигде нет вызова этой функции.
1
|
34 / 30 / 8
Регистрация: 22.02.2017
Сообщений: 404
|
|
27.09.2018, 23:15 [ТС] | 5 |
RostikTawer,
1) Висит только один скрипт 2) Вроде бы всё в одном кадре 3) Вызывается только в скрипте Vitals, от которого наследуются PlayerVitals и EnemyVitals
0
|
34 / 30 / 8
Регистрация: 22.02.2017
Сообщений: 404
|
||||||
28.09.2018, 12:36 [ТС] | 7 | |||||
Storm23, Как раз таки, тот который вы мне давали, с пулей, помните?
Добавлено через 2 минуты
0
|
![]() ![]() |
||||||
28.09.2018, 13:41 | 8 | |||||
Да, но в моем коде не было никаких Destroy.
Причина двойного попадания скорее всего вот в чем. Вы делаете raycast в FixedUpdate. А затем вызываете Destroy пули. Но дело в том, что Destroy срабатывает не сразу а срабатывает лишь в следующем фрейме. А пока Destroy не сработал, в текущем фрейме метод FixedUpdate может сработать несколько раз (потому что это физический фрейм - не совпадает с фреймом отрисовки). Вот и получается, что пуля пробивает несколько раз. Выход - либо вызывать DestroyImmediate вместо Destroy (но это не рекомендуется), либо сделать bool флажок у пули, который будет показывать, что пуля уничтожена и не нужно больше отрабатывать FixedUpdate:
1
|
34 / 30 / 8
Регистрация: 22.02.2017
Сообщений: 404
|
|
28.09.2018, 14:47 [ТС] | 9 |
Storm23, Я destroy поставил только чтобы посмотреть, почему двойной урон проходит.
Добавлено через 30 минут Ага, спавнятся 2 пули за выстрел Добавлено через 3 минуты Решено: на оружии противника весел скрипт Weapon, которым управляет игрок. Когда игрок стрелял, оружие противника стреляло и поподало в себя.
0
|
RostikTawer
|
28.09.2018, 15:49
#10
|
0
|
![]() ![]() |
|
28.09.2018, 22:09 | 11 |
![]() Решение
На самом деле такая проблема всегда с оружием возникает. Поэтому я либо не ставлю на оружие вообще коллайдер, либо же выношу его на отдельный layer. Аналогичная проблема возникает с выпадающей гильзой, которая постоянно застревает в коллайдерах.
0
|
RostikTawer
|
29.09.2018, 08:31
#12
|
0
|
34 / 30 / 8
Регистрация: 22.02.2017
Сообщений: 404
|
|
29.09.2018, 16:02 [ТС] | 13 |
0
|
29.09.2018, 16:02 | |
Помогаю со студенческими работами здесь
13
Враг не наносит урон по игроку Определить средний урон игрока
Внутренняя ссылка в каждом посте - урон поисковому продвижению? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |