- Home /
Openable door help
Hello! I have a problem with my openable door. It's no problem with opening the door but when I'm standing in front of it and it's about to open it's goes right through me. It's like I'm invincible or that the door haven't got any collider on it. Please help!
Openable Door.js
// Smothly open a door
var smooth = 2.0;
var DoorOpenAngle = 90.0;
var DoorCloseAngle = 0.0;
var open : boolean;
var enter : boolean;
//Main function
function Update (){
if(open == true){
var target = Quaternion.Euler (0, DoorOpenAngle, 0);
// Dampen towards the target rotation
transform.localRotation = Quaternion.Slerp(transform.localRotation, target,
Time.deltaTime * smooth);
}
if(open == false){
var target1 = Quaternion.Euler (0, DoorCloseAngle, 0);
// Dampen towards the target rotation
transform.localRotation = Quaternion.Slerp(transform.localRotation, target1,
Time.deltaTime * smooth);
}
if(enter == true){
if(Input.GetKeyDown("e")){
open = !open;
}
}
}
//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
if (other.gameObject.tag == "Player") {
(enter) = true;
}
}
//Deactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
if (other.gameObject.tag == "Player") {
(enter) = false;
}
}
Answer by clunk47 · Dec 27, 2012 at 04:47 PM
Have you tried using a Hinge Joint? And HERE is a simple project I was working on a while back, the doors in this house are all hinge joints. I simply walked into them to open, but you can script them to open on action button, and use a motor to move to their target angle at a target velocity. I also used hinge joints for the flippers in my PINBALL PROJECT. In this example I used key presses to control the hinge joint angles.
Using a Hinge joint will give the door actual physics, therefore the doors won't go through your player.
Hi clunk47,
You mean that even if the door's collider is a trigger (as was originally in this case), the door won't go through the player?
Ahh thanks for pointing that out, it slipped my $$anonymous$$d. You need another collider on the door. $$anonymous$$ake the door a $$anonymous$$ESH COLLIDER that is CONVEX, and add a BOX collider to the door to act as your TRIGGER. Otherwise, yes, the door won't have an actual physical collider. $$anonymous$$ake sure the TRIGGER is bigger in size than the door's mesh collider.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Unity Game Design Function Door, Not Opening. Help Please? 0 Answers
Need help with some OnTrigger Scripting 2 Answers
Need Help Programming... Please Help! Thanks :) 1 Answer
How to rotate collider? 1 Answer