// Smothly open a door var smooth = 2.0; var DoorOpenAngle = 90.0; private var open: boolean; private var enter: boolean; private var defaultRot: Vector3; private var openRot: Vector3; function Start() { defaultRot = transform.eulerAngles; openRot = new Vector3(defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z); } function proveriPogodok() : boolean { var prvoPogodok: boolean = false; var vtoroPogodok: boolean = false; var tretoPogodok: boolean = false; if (Input.GetKeyDown("f")) { prvoPogodok = true; } if (prvoPogodok) { if (Input.GetKeyDown("b")) { vtoroPogodok = true; } else { resetPogodoci(); } } if (vtoroPogodok) { if (Input.GetKeyDown("x")) { return true; } else { resetPogodoci(); return false; } } } function resetPogodoci() { prvoPogodok: boolean = false; vtoroPogodok: boolean = false; tretoPogodok: boolean = false; } //Main function function Update() { 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); } if (proveriPogodok() && enter) { open = !open; GetComponent. < AudioSource > ().Play(); } } function OnGUI() { if (enter) { GUI.Label(new Rect(Screen.width / 2 - 75, Screen.height - 200, 200, 100), "Press 'E' to open door"); } } //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; } }