My goal is that if the enemy is there, the door would not open by the player. It can only be opened when the enemy is far from the triggered collider. The main problem is that it is not working. Even if the enemy is there, the player can still open the door. Any help would be great. Here is the script. My enemies have already tags and also the player.
// Smothly open a door
var smooth = 2.0;
var DoorOpenAngle = 90.0;
var DoorCloseAngle = 0.0;
var open : boolean;
var enter : boolean;
var trap : 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("f")){
open = !open;
}
}
}
//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
Debug.Log("Trigger is on");
if (trap == false){
if (other.gameObject.tag == "Player") {
Debug.Log("Player is there");
(enter) = true;
}
}
if (other.gameObject.tag == "EnemyTrap") {
Debug.Log("They are there");
(trap) = true;
}
}
//Deactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
Debug.Log("Trigger is on");
if (trap == true){
if (other.gameObject.tag == "Player") {
Debug.Log("Player is gone");
(enter) = false;
}
}
if (other.gameObject.tag == "EnemyTrap") {
Debug.Log("They are gone");
(trap) = false;
}
}