I am trying to open the door when the player pick-up the key and becomes next to the door, depending on OnTriggerEnter function. I called OnTriggerEnter function in the script of PicUpKey.cs but the door opens once the player picks up the key. I want the door open when the player carries the key and goes to the door. PLEASE HELP.
PicUpKey.cs is below:
public class PicUpKey : MonoBehaviour
{
public GameObject keyObject, PicUpTextKey ;
public RawImage objectRawImageKey;
public Door door;
void Start()
{
keyObject.SetActive(false);
objectRawImageKey.enabled = false;
PicUpTextKey.SetActive(false);
}
private void OnTriggerStay(Collider other)
{
if (other.gameObject.tag == "Player")
{
PicUpTextKey.SetActive(true);
if (Input.GetKey(KeyCode.K))
{
gameObject.SetActive(false);
keyObject.SetActive(true);
objectRawImageKey.enabled = true;
PicUpTextKey.SetActive(false);
//calling OnTriggerEnter when the player pics up the key
if(objectRawImageKey.enabled == true)
{
door.OnTriggerEnter(other);
}
}
}
}
private void OnTriggerExit(Collider other)
{
PicUpTextKey.SetActive(false);
}
}
Door.cs is below:
public class Door : MonoBehaviour
{
public GameObject AnimeObject;
public GameObject ThisTrigger;
private void Start()
{
ThisTrigger.SetActive(false);
}
public void OnTriggerEnter(Collider collision)
{
if (collision.transform.tag == "Player")
{
AnimeObject.GetComponent<Animator>().Play("Door");
ThisTrigger.SetActive(true);
}
}
}
Please help.