- Home /
Why does my trigger only fire one time?
I have a collider on an GameObject which contains a textmesh and a BoxCollider2 around its outside edge, with the is trigger box ticked.
I have a script on the GameObject with the following code:
using UnityEngine;
using System.Collections;
public class ResetLevelController : MonoBehaviour {
void OnTriggerEnter2D(Collider2D other){
print("Reset collider enter:" + other.gameObject.transform.name);
}
void OnTriggerExit2D(Collider2D other){
print("Reset collider exit:" + other.gameObject.transform.name);
}
void OnTriggerStay2D(Collider2D other){
print("Reset collider stay:" + other.gameObject.transform.name);
}
}
When my other game objects pass over the text the first time I get the following debug output:
Reset collider enter:basketball Reset collider stay:basketball Reset collider exit:basketball
The problem is - this only ever happens on the first contact between the 2 objects, if I make the basketball pass the text another time, the triggers dont fire? I would like to understand why?
My real goal here is to have a textmesh where I can press it as a button as part of my GUI and then take some action but this is apparently surprisingly hard.
$$anonymous$$y real goal here is to have a textmesh where I can press it as a button as part of my GUI and then take some action but this is apparently surprisingly hard.
Just put a BoxCollider2D on your Text$$anonymous$$esh object. Then you can use the On$$anonymous$$ouseDown() callback to capture clicks with a mouse.
Your answer
Follow this Question
Related Questions
Trigger Collider Getting Left Behind Object 1 Answer
OnTriggerEnter2D being called by GameObject without the trigger 1 Answer
OnTriggerEnter2D acting like OnTriggerStay2D 0 Answers
OnTriggerEnter2D fired by non-trigger 2D collider 0 Answers
Have 2 colliders on same trigger (and hit the first to enter) 0 Answers