- Home /
Door not opening and closing correctly?
okay this is the problem, in this script it works perfectly but when it rotates, sometimes it goes over 359 ( so it makes it into 0 ) and sometimes when it goes past 0 it goes to (359)
so what i tried doing was making it so it closed almost all the way through but i dont like how it looks like in the game. How could i fix my script so it goes exact. I know i could use slerp but i failed at using slerp and rotatearound at the same time.
var smooth = 2.0;
var DoorOpenAngle = 85.0;
var DoorCloseAngle = 0.0;
var startPosition = 0;
var open : boolean;
var rotateAround : Transform;
function Start(){
startPosition = transform.eulerAngles.y;
if(transform.eulerAngles.y > 264 && transform.eulerAngles.y < 300){
transform.eulerAngles.y = 265;
startPosition = 265;
}
if(transform.eulerAngles.y > 300){
transform.eulerAngles.y = 0;
startPosition = 0;
}
}
//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(rotateAround.transform.eulerAngles.y < DoorOpenAngle + startPosition){
transform.RotateAround (rotateAround.position, Vector3.up, Time.deltaTime * smooth);
}
}
if(open == false){
// var target1 = Quaternion.Euler (0, DoorCloseAngle, 0);
// Dampen towards the target rotation
if(transform.eulerAngles.y > 3 + DoorCloseAngle + startPosition){
transform.RotateAround (rotateAround.position, Vector3.up, Time.deltaTime * -smooth);
//transform.localRotation = Quaternion.Slerp(transform.localRotation, target1,
// Time.deltaTime * smooth);
}
}
}
//Activate the Main function when player is near the door
function activate(){
if(open){
open = false;
}else{
open = true;
}
}
Answer by puzzledragon · Sep 26, 2011 at 11:53 AM
it would be loads easier to use the unity animation thingy it can make the door open then write a script that plays the animation
how would you do this, i am not familiar at all with unity creation of animations. Where can i get tutorials on this?
Answer by puzzledragon · Nov 24, 2011 at 02:02 PM
what you do is go to the animation window select the door object press record it will be in the window somewhere press play press add keyframe (add 2) put 1 at the start and one at the angle you want it to be open at the rest is self explanatiory
p.s. make a second animation for the door closing its easier the script should look something like this unless you want it to be triggered in a different way put the name of the animation where i put Open Door have a nice day hope your game turns out great :D
function OnTriggerEnter (other : Collider) {
animation.Play("Open Door");
}
Your answer
Follow this Question
Related Questions
door script problems 2 Answers
Open door without using tag 1 Answer
Opening a door with a key 0 Answers
Need help with door opening and closing script/animation 3 Answers
Door Opening And Closing 2 Answers