Hi helpful people!
I am trying to create a beam which interact with an enemy as long as it is within the boundaries of the trigger collider attached to said beam. It works, how can I ignore triggers sent by other enemies if the beam is already interacting with one enemy? How can I ignore subsequent triggers if a first collision already happened? Thank you! Here is my code that works, but still interacts with multiple enemies:
private void OnTriggerStay2D(Collider2D collision)
{
if(collision.tag == "Enemy" && isBeamOn == true)
{
InteractWithEnemy(collision);
}
else if (collision.tag == "Enemy" && isBeamOn == false)
{
FreeEnemy(collision);
}
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.tag == "Enemy")
{
FreeEnemy(collision);
}
}
private void InteractWithEnemy(Collider2D collision)
{
playerMover.isInteractingWithEnemy = true;
enemy = collision.gameObject;
enemyMover = enemy.GetComponent<EnemyMover>();
enemyTransform = enemy.GetComponent<Transform>();
enemyRb = enemy.GetComponent<Rigidbody2D>();
// Interactions with enemy
}
private void FreeEnemy(Collider2D collision)
{
playerMover.isInteractingWithEnemy = false;
enemy = collision.gameObject;
enemyMover = enemy.GetComponent<EnemyMover>();
enemyMover.isFree = true;
// Release the enemy
}