Я думаю, вам нужно будет различать Hitboxes и Hurtboxes . ( Хорошая статья об этом здесь )
Тогда, когда Hitbox сталкивается с Hurtbox, только персонаж Hurtbox получает урон.
Метод того, как справиться с этим, зависит от над какой игрой вы работаете. В игре типа «ближний бой», вероятно, использовались бы разные компоненты коллайдера, чтобы различать Hitbox и Hurtbox.
Еще один более сложный сценарий - это игра типа «автокатастрофа», когда машины получают повреждения при столкновении друг с другом. Поскольку Hitbox и Hurtbox на автомобиле в основном одинаковы, вам потребуется дополнительная логика c, чтобы определить, какой машине наносится урон.
Я мог бы подумать о том, какой урон наносит другой автомобиль. зависеть от скорости автомобиля во время боя sh и фактического направления движения автомобиля.
Поэтому, когда Игрок 1 атакует / врезается в Игрока 2, только Игрок 2 получает урон, так как Игрок 2 либо не имели какой-либо скорости, либо не двигались в направлении игрока 1.
С такой игровой логикой c вы чаще всего можете покрывать все различные крайние случаи получения урона и назначьте правильное количество урона каждому игроку.