I want to make so I can’t close the doors if they’re opening, I’ll have to wait till they open with full angle (90) and then I can close them, same thing with closing… If they’re closing I can’t open them till closing finishes.
Current script:
var smooth = 2.0;
var DoorOpenAngle = 90.0;
var openSound : AudioClip;
var closeSound : AudioClip;
var lockedSound : AudioClip;
var locked = false;
var timesToOpen = 2.0;
private var open : boolean;
private var enter : boolean;
private var enter2 : boolean;
private var gui : boolean = true;
private var sound : boolean = true;
private var defaultRot : Vector3;
private var openRot : Vector3;
function Start(){
defaultRot = transform.eulerAngles;
openRot = new Vector3 (defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);
}
//Main function
function Update (){
TimesToOpen();
if(open){
//Open door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
}else{
//Close door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
}
OpenDoors();
if(sound){
if(Input.GetMouseButtonDown(0) enter open){
AudioSource.PlayClipAtPoint(openSound, transform.position);
}
if(Input.GetMouseButtonDown(0) enter !open){
AudioSource.PlayClipAtPoint(closeSound, transform.position);
}
if(Input.GetMouseButtonDown(0) locked enter2){
AudioSource.PlayClipAtPoint(lockedSound, transform.position);
}
}
}
function OnGUI(){
if(locked enter2){
open = false;
enter = false;
GUI.Box(new Rect(Screen.width/2 - 65, Screen.height - 100, 135, 25), "The door is locked");
}
if(gui){
if(enter !open){
GUI.Box(new Rect(Screen.width/2 - 165, Screen.height - 100, 350, 25), "Press (Left Mouse Button) to open the door");
}
if(enter open){
GUI.Box(new Rect(Screen.width/2 - 165, Screen.height - 100, 350, 25), "Press (Left Mouse Button) to close the door");
}
}
}
//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
if (other.gameObject.tag == "Player") {
enter = true;
enter2 = true;
showFinish = true;
}
}
//Deactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
if (other.gameObject.tag == "Player") {
enter = false;
enter2 = false;
showFinish = false;
}
}
function TimesToOpen(){
if(timesToOpen <= 0){
open = false;
gui = false;
sound = false;
}
}
function OpenDoors(){
if(Input.GetMouseButtonDown(0) enter){
open = !open;
timesToOpen -= 1.0;
}
}
Please help me, thanks in advance! ![]()