- Home /
Duplicate Question
isTrigger door issues
Hello,
I am having a little dilemma. I am working on a game and I have pretty much everything set UI wise. It's a neat 1st Person Puzzle/Adventure game I've been working on. I have keys, they have scripts, and once the player goes through the onTriggerEnter, the key disappears, a bool (hasKey) goes true, and a keyCount increments by one.
That's the easy part. The hard part is trying to use the newly-gathered key to open a door automatically. I have the door a cube, I have a box collider, marked it as isTrigger, and gave it a RigidBody (like the key, btw).
Here's the awesome part, I think this is a Unity deal (correct me if I'm wrong), but it seems that every object that is isTrigger true, the player can pass right through it. This makes it a pain due to the fact that I would rather have it so that the key opens the door (and the player does NOT pass through the door as if it was some sort of ghost door).
I have been looking EVERYWHERE to try to figure out a working fix for this, but I'm not coming up with anything that works. Could I ask for some help, please?
I am attaching a code to the door so that the door handles all the necessary leg-work (as it would make more sense since the door will have the RigidBody component). Thanks, again, for any help.
using UnityEngine;
using System.Collections;
public class DoorTrigger : MonoBehaviour {
void OnTriggerEnter(Collider other){
if (Timer.hasKey && Timer.keyCount > 0){
collider.isTrigger = true;
Destroy(gameObject);
Timer.keyCount--;
}
//if keyCount == 0
//Do nothing
if (Timer.keyCount <= 0){
}
}
}
Why use a trigger? Why not just perform the check on a collision ? Or have 2 objects, 1 being the trigger, the other 1 being the door and when the key enters the trigger you could call some function on the door to unlock/open it.
Answer by Juan73908 · Mar 25, 2014 at 08:01 AM
The answer to this is fairly simple.
Create another collider that isn´t trigger as a child of the door. The trigger collider should be sightly bigger, than the door collider.
When you want to open the door, remember to destroy, or deactivate the collider.
I cannot put code here, because everything is done in the inspector more or less
Good luck =)
Thanks so much. Fixed all my problems. If I could vote, I would not only thumbs up, but would also sign in under different names to up vote you as well! :D