- Home /
Changing the rotation of a Trigger makes the Trigger not work anymore?
I want to make it so if a player walks by a security camera, it follows the player. Thing is, changing the rotation of the camera makes the OnTriggerEnter even not fire anymore.
My code, so far, was
void OnTriggerEnter (Collider Cone) {
if (Cone.gameObject.CompareTag ("Player")) {
Debug.Log ("Inside");
_playerIsSeen= true;
}
void OnTriggerExit (Collider Cone){
if (Cone.gameObject.CompareTag ("Player")) {
Debug.Log ("Out");
_playerIsSeen= false;
}
}
void Update (){
if (_playerIsSeen){
_camera.transform.LookAt(_player.transform.position);
} else {
_camera.transform.LookAt(_idlePoint1.transform.position);
}
}
The problem is, as soon as the camera moves, then OnTriggerEnter refuses to fire ever again. Either that, or OnTriggerExit keeps firing forever. The end result is that the camera snaps to the player for a millisecond before resuming staring at its default position forever, even if the player tapdances in front of it.
are you shure you set the trigger right ? i think you shut put it as a chield from the camera so its rotating with the camera.
I'm pretty sure I set it right. At least it's whatchamacallit 'body' rotates just fine. It just doesn't seem to be able to find anything, after rotating.
Can you post a screenshot of your scene or something like that?
But I will try to debug this, if you enter the trigger and it detects you, you will have to get out and get back in for it to work again. If that is what you do and it still doesn't work try
OnTriggerStay ins$$anonymous$$d.
By the way, I think you're missing a closing bracket for the if statement on the void OnTriggerEnter.
I tried OnTriggerStay, but the results were the same. As soon as the LookAt fired, the trigger stopped responding.
I also had a similar problem when I was trying to move the collider using animation. Whenever I changed the collider's transform.yaddayadda, either for rotation position or size, the collider wouldn't work. It would work if I animated an invisible object and put the collider inside it, though.
I'm guessing here that the collider stops working if its transform is changed, but I couldn't find anything on google supporting this guess.
As for the screenshot, I could take it, but I don't know how useful it'd be. It's literally just a security camera (actually a security guard, but he's static, so I called him a camera for ease of understanding), the player, and an empty terrain.
Answer by Grandy12 · Apr 24, 2016 at 07:30 AM
Fixed it, guys. It turns out that, while I had given the empty object containing the mesh a kinematic rigidbody, I had to give a kinematic rigidbody to the object that contained the empty object that contained the mesh.
I have no idea why that it is the case, but it was.
Thanks for the replies BTW.