Guest User

doorscript

a guest
Jul 6th, 2025
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.43 KB | Gaming | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5.  
  6. public class DoorScript : MonoBehaviour
  7. {
  8.     //Index used to connect Puzzle object to Door
  9.     public int id;
  10.     public enum DoorState
  11.     {
  12.        Close,
  13.        Open
  14.     }
  15.     public DoorState doorState;
  16.  
  17.     //Subscribes to required events if object exists
  18.     private void OnEnable()
  19.     {
  20.         GameEvents.instance.OnButtonPressed += IToggleDoor;
  21.         GameEvents.instance.OnPlateTrigger += IToggleDoor;
  22.     }
  23.     //Unsubscribes to events if object does not exist
  24.     private void OnDisable()
  25.     {
  26.         GameEvents.instance.OnButtonPressed -= IToggleDoor;
  27.         GameEvents.instance.OnPlateTrigger -= IToggleDoor;
  28.     }
  29.  
  30.     //Opens door if closed and closes if opened
  31.     public void IToggleDoor(int id)
  32.     {  
  33.         if (this.id == id)
  34.         {
  35.             print(gameObject.name);
  36.             if (doorState == DoorState.Close)
  37.             {
  38.                 this.gameObject.transform.position = Vector3.Lerp(this.transform.position, this.transform.position + new Vector3(0, 3.5f, 0), 1f);
  39.                 doorState = DoorState.Open;
  40.             }
  41.             else
  42.             {
  43.                 this.gameObject.transform.position = Vector3.Lerp(this.transform.position, this.transform.position + new Vector3(0, -3.5f, 0), 1f);
  44.                 doorState = DoorState.Close;
  45.             }
  46.         }
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment