TwiNNeR

tridis

Dec 14th, 2015
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Smothly open a door
  2. var smooth = 2.0;
  3. var DoorOpenAngle = 90.0;
  4. private
  5. var open: boolean;
  6. private
  7. var enter: boolean;
  8.  
  9. private
  10. var defaultRot: Vector3;
  11. private
  12. var openRot: Vector3;
  13.  
  14. function Start() {
  15.     defaultRot = transform.eulerAngles;
  16.     openRot = new Vector3(defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);
  17. }
  18.  
  19. function proveriPogodok() : boolean {
  20.     var prvoPogodok: boolean = false;
  21.     var vtoroPogodok: boolean = false;
  22.     var tretoPogodok: boolean = false;
  23.  
  24.     if (Input.GetKeyDown("f")) {
  25.         prvoPogodok = true;
  26.     }
  27.  
  28.     if (prvoPogodok) {
  29.         if (Input.GetKeyDown("b")) {
  30.             vtoroPogodok = true;
  31.         } else {
  32.             resetPogodoci();
  33.         }
  34.     }
  35.  
  36.     if (vtoroPogodok) {
  37.         if (Input.GetKeyDown("x")) {
  38.             return true;
  39.         } else {
  40.             resetPogodoci();
  41.             return false;
  42.         }
  43.     }
  44.  
  45. }
  46.  
  47.  
  48.  
  49. function resetPogodoci() {
  50.     prvoPogodok: boolean = false;
  51.     vtoroPogodok: boolean = false;
  52.     tretoPogodok: boolean = false;
  53. }
  54.  
  55. //Main function
  56. function Update() {
  57.     if (open) {
  58.         //Open door
  59.         transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
  60.     } else {
  61.         //Close door
  62.         transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
  63.     }
  64.  
  65.    
  66.     if (proveriPogodok() && enter) {
  67.         open = !open;
  68.         GetComponent. < AudioSource > ().Play();
  69.     }
  70. }
  71.  
  72. function OnGUI() {
  73.     if (enter) {
  74.         GUI.Label(new Rect(Screen.width / 2 - 75, Screen.height - 200, 200, 100), "Press 'E' to open door");
  75.     }
  76. }
  77.  
  78. //Activate the Main function when player is near the door
  79. function OnTriggerEnter(other: Collider) {
  80.     if (other.gameObject.tag == "Player") {
  81.         enter = true;
  82.     }
  83. }
  84.  
  85. //Deactivate the Main function when player is go away from door
  86. function OnTriggerExit(other: Collider) {
  87.     if (other.gameObject.tag == "Player") {
  88.         enter = false;
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment