Проблема с обработкой направления метода .AddForce()

Я пытаюсь сделать отталкивание противников при ударе. У меня есть метод OnAttack(), который является радиусом атаки, в нем я проверяю все коллайдеры на столкновение и наношу урон задетым противникам из собранного массива коллайдеров.

Но столкнулся с проблемой: у меня есть функция с .AddForce() (последняя) и она срабатывала корректно, но только в одну сторону (из-за -transform). Тогда я сделал if конструкцию, которая считывает куда повернут противник (Slime.sprite.flipX), чтобы в одном случае оставить функцию как есть, а в другом - изменить направление. Но это не работает. Так же я пытался переписать направление с помощью универсальной direction, но это тоже не работает. Пытался в самой direction изменить условия (через Hero.Instance, Slime.Instance, пробовал писать отдельный метод) - все из этого не работает.

Продолжает быть рабочим лишь colliders[i].GetComponent<Rigidbody2D>().AddForce(-transform.position * powerForce, ForceMode2D.Impulse);, но в одну сторону.

Не мог бы кто-нибудь объяснить в чем проблема?

    private void OnAttack()
    {
        Collider2D[] colliders = Physics2D.OverlapCircleAll(attackPos.position, attackRange, Enemy);

        for (int i = 0; i < colliders.Length; i++)
        {

            colliders[i].GetComponent <Entity>().GetDamage(Damage);
           Vector2 direction = attackPos.position - colliders[i].transform.position;

            StartCoroutine(EnemyOnAttack(colliders[i]));
            colliders[i].GetComponent<Rigidbody2D>().AddForce(-direction * powerForce, ForceMode2D.Impulse);
            colliders[i].GetComponent<Rigidbody2D>().AddForce(-transform.position * powerForce, ForceMode2D.Impulse);

            if (Slime.sprite.flipX == false)
            {
                Debug.Log("Не повернут");
                

                Debug.Log("Толчок");
            }
            if (Slime.sprite.flipX ==  true) 
            {
                Debug.Log("Повернут");
                
            }
        }
    
    }

Ответы (0 шт):