Когда хотя бы один снаряд из группы попадает в цель, как вызвать функцию только один раз за группу? - PullRequest
1 голос
/ 15 апреля 2019

Когда из дробовика стреляет группа шариков, и, скажем, 1 или 20 шариков попадают в цель: как вызвать функцию только один раз за точный выстрел, а не один раз за столкновение с шариком?

При использованииOnCollisionEnter на снаряде или на самой цели, метод вызывается для каждого отдельного столкновения гранул.

Должен ли я использовать событие для этой проблемы?Как бы я это сделал?

Редактировать: Ах, я забыл отредактировать это, как только понял.Я думаю, что некоторые люди могли неправильно понять мою проблему.

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Внутри OnCollisionEnter найти ContactPoint.points.

Теперь вы можете использовать расчет точность здесь и выяснить, какой из них идеален.

Если идеально, то вызывать функцию, иначе нет.

0 голосов
/ 29 апреля 2019

Если кто-нибудь когда-нибудь и наткнется на это, то, как я это сделал, сгенерировал уникальный идентификатор для каждого выстрела оружия и назначил его каждому снаряду внутри этого выстрела.Затем любой снаряд, попавший в цель, проверит, вызвал ли этот уникальный идентификатор метод или нет.Таким образом, когда вы производите 1 выстрел с 20 снарядами, каждый снаряд, поражающий цель, будет наносить урон цели, но отбрасывает его только один раз, независимо от того, сколько снарядов попадало.

...