# 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;
}

}
``````

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

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

``````function OnTriggerEnter (other : Collider) {
animation.Play("Open Door");
``````

}