- Home /
OnTriggerEnter2D works without being actually triggered.
I am working on a simple enemy spawn system. I have a game object with a Circle Trigger attached with the tag "SpawnArea". Whenever the enemy walks into it, I want to flip it's direction. Here is what I have added to my enemy_move script:
void OnTriggerEnter2D(Collider2D col){
Debug.Log ("collision");
if(col.CompareTag("SpawnArea")){
Debug.Log("wall collision");
this.transform.Rotate (Vector3.forward * -dir);
timer = stopTime;
}
As you can see I am using the debugger to log errors. As soon as I run the game (even though my enemy is far away from the Circle Collider), I get both the logs appearing in my console even though there is no collision. Then the enemy doesn't detect the Collider further and continues moving on. I have checked everything. The Circle Collider is a trigger, my enemy has a rigidbody attached. They are all on the Default layer, the z value of each is the same. I don't understand why this is happening. Please help! thanks!!
(I have also tried OnCollisionEnter2D)
I changed OnTriggerEnter to OnTriggerExit. That seems to fix part of it (the rotation still doesn't happen, but it's logging the trigger. For some reason it was detecting when the object was "in" the collider as being triggered. Shouldn't it only trigger when it hits the bound? I don't understand why it's calling OnTriggerEnter when the game object is within the collider. Pls Help :(
disable the entire enemy gameObject and see if that's the enemie's falt
Your answer
Follow this Question
Related Questions
OnCollisionStay2D is ignoring OnCollisionEnter2D 2 Answers
Detecting empty collider 1 Answer
Unexpected token: collider? 1 Answer
OnCollisionEnter 1 Answer