Отталкивание персонажа в разные стороны при столкновении с врагом
Мне нужно реализовать отталкивание персонажа в разные стороны при столкновении с врагом.
То есть допустим если персонаж дотронулся до левой части врага, то его должно откинуть назад. Так же и с правой стороной врага. С левой-то я сделал, но теперь когда персонаж прикасается с правой стороны врага, его кидает вперед к врагу. Можно предложить решение этой проблемой как угодно: с помощью лучей, с 2-я коллайдерами, с bool переменной и т.д. Буду рад любому ответу. Надеюсь на вашу помощь. 

Ответы (1 шт):
Автор решения: nipercop
→ Ссылка
В этом методе вам необходимо проверить, с какой стороны Ваш персонаж врезался с Врагом, это легко выполнить сравнив положения Вашего персонажа и врага.
if(collision.gameObject.CompareTag("Enemy")){
Vector3 backwardDirection = transform.position - collision.transform.position;
backwardDirection.z = 0; // обнуляем разницу по оси Z (скорее всего в этом нет необходимости, но можно оставить разве что на всякий случай)
backwardDirection.y = Mathf.Abs (backwardDirection.y); // Делаем значение по вертикали всегда положительной (тут можете установить свое желаемое значение)
// Это надо когда ваш персонаж врезается во врага снизу, то его отбрасывало по вертикане не вниз, а вверх (как это реализовано в игра на денди или сега, чип и дейл, соник и прочие)
rb.AddForce(backwardDirection, ForceMode2D.Impulse);
}