using UnityEngine; using UnityEngine.UI; using TMPro; using System; using UnityEngine.SceneManagement; public class OpenNextLevel : MonoBehaviour { public TMP_Text interactionPrompt; private Outline outline; [SerializeField] private Animator objectAnimator; [SerializeField] private string animationName = "PickupAnimation"; [SerializeField] private AudioClip openSound = null; [SerializeField] private string doorName = "Deck D"; [SerializeField] private string nextLevelName = "level2"; [SerializeField] private float interactionDistance = 6.0f; [SerializeField] private KeyCardPlayer keyCardPlayer; private bool isOpened = false; void LoadNextLevel() { // load level2.unity if (interactionPrompt != null && nextLevelName == "level3") { interactionPrompt.text = "Congratulations! You Escaped!"; interactionPrompt.enabled = true; } else { SceneManager.LoadScene(nextLevelName); } } void Awake() { outline = GetComponent(); if (outline != null) { outline.enabled = true; } if (interactionPrompt != null) { interactionPrompt.enabled = false; } } void Update() { if (!isOpened) { Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0)); if (Physics.Raycast(ray, out RaycastHit hit, interactionDistance)) { if (hit.collider.gameObject == gameObject) { if (interactionPrompt != null && !Input.GetMouseButtonDown(0)) { interactionPrompt.text = "Use Key Card to open door to " + doorName; interactionPrompt.enabled = true; } // get state of keycard from player if (Input.GetMouseButtonDown(0) && keyCardPlayer.hasKeyCard) { isOpened = true; if (outline != null) { outline.enabled = false; } if (interactionPrompt != null) { interactionPrompt.enabled = false; } if (objectAnimator != null) { objectAnimator.Play(animationName, 0, 0.0f); } if (openSound != null) { SoundFXManager.instance.PlaySound(openSound, transform, 1.0f); } Invoke("LoadNextLevel", 2.2f); } // else if (Input.GetMouseButtonDown(0) && !keyCardPlayer.hasKeyCard) // { // if (interactionPrompt != null) // { // interactionPrompt.text = "You need a key card to open this door"; // interactionPrompt.enabled = true; // } // } } else { if (interactionPrompt != null) { interactionPrompt.enabled = false; } } } else { if (interactionPrompt != null) { interactionPrompt.enabled = false; } } } } }