UnityGameProjectsCode / NightwatchGame / KeyPickup.cs
KeyPickup.cs
Raw
using UnityEngine;

public class KeyPickup : MonoBehaviour
{
    public DoorUse officeDoor;
    private bool playerNearby;
    public GameObject interactionUI;
    public AudioSource pickUpAudio;
    private bool pickedUpKey;
    public GameObject keyLight;

    private void OnTriggerEnter(Collider other)
    {
        playerNearby = true;
        interactionUI.SetActive(true);
    }

    private void OnTriggerExit(Collider other)
    {
        playerNearby = false;
        interactionUI.SetActive(false);
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.E) && playerNearby && !pickUpAudio.isPlaying)
        {
            officeDoor.SetPlayerHasKey(true);
            interactionUI.SetActive(false);
            pickedUpKey = true;
            pickUpAudio.Play();
            gameObject.transform.parent.GetComponent<MeshRenderer>().enabled = false;
            gameObject.transform.parent.GetComponent<Animator>().enabled = false;
            keyLight.SetActive(false);
        }

        if (pickedUpKey && !pickUpAudio.isPlaying)
        {
            gameObject.transform.parent.gameObject.SetActive(false);
        }
    }
}