Simple attack knockback: How to get two trigger colliders to interact?
Hi everyone,
I am trying to set up a basic knockback function, so that when my player hits the enemy they move back. My knockback code goes on my player.
For some reason, the code I have only works when the enemy's collider has its IsTrigger set to false. I need it to be set to IsTrigger though, as the enemy has two colliders, one (which will NOT be a trigger) which will stop the player walking through it, and another (which WILL be a trigger) to represent the area you can hit it.
I don't mind if the collider also triggers when the attack hits the body collider.
The collider on my player's sword is set to IsTrigger, but this isn't so important and I can have it set to false if it helps.
This is the Knockback code:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class KnockBack : MonoBehaviour
 {
     [SerializeField] private float thrust;
     public float knockTime = 0.3f;
 
     private void OnTriggerEnter2D(Collider2D collision)
     {
         if (collision.gameObject.CompareTag("Enemy"))
         {
             Rigidbody2D enemy = collision.GetComponent<Rigidbody2D>();
             if (enemy != null)
             {
                 StartCoroutine(KnockCoroutine(enemy));
             }
         }
     }
 
     private IEnumerator KnockCoroutine(Rigidbody2D enemy)
     {
         if(enemy != null)
         {
             Vector2 forceDirection = enemy.transform.position - transform.position;
             Vector2 force = forceDirection.normalized * thrust;
             enemy.velocity = force;
             yield return new WaitForSeconds(knockTime);
             enemy.velocity = Vector2.zero;
         }
     }
 }
Any help would be massively appreciated!
Answer by tomosbach · Mar 12, 2021 at 05:37 PM
This seems to have resolved itself now!! Any suggestions as to where I was going wrong would still be much appreciated though :)
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
               
 
			 
                