// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit, interactDist)) { Debug.Log(hit.collider.gameObject); // ------- DOORS ------- // if (hit.collider.CompareTag("SimpleDoors")) { SimpleDoorController doorController = hit.collider.transform.GetComponent <SimpleDoorController> (); if (doorController == null) { return; } if (InventoryController.keys [doorController.index] == false) { DialoguesController msgsController = GameObject.Find("DialoguesController").GetComponent <DialoguesController> (); msgsController.DisplayMessage(doorController.index); } if (InventoryController.keys [doorController.index] == true) { doorController.OpenDoor(); } Debug.DrawRay(ray.origin, ray.direction * hit.distance, Color.blue); } else if (hit.collider.CompareTag("DoubleDoors")) { DoubleDoorsController doorsController = hit.collider.transform.GetComponent <DoubleDoorsController> (); if (doorsController == null) { return; } if (InventoryController.keys [doorsController.index] == false) { DialoguesController msgsController = GameObject.Find("DialoguesController").GetComponent <DialoguesController> (); msgsController.DisplayMessage(doorsController.index); } if (InventoryController.keys [doorsController.index] == true) { doorsController.OpenDoors(); } Debug.DrawRay(ray.origin, ray.direction * hit.distance, Color.blue); } // ------- KEYS ------- // if (hit.collider.CompareTag("Keys")) { InventoryController.keys[hit.collider.GetComponent <KeysController>().index] = true; hit.collider.GetComponent <KeysController> ().PickUpKey(); } if (hit.collider.name == "Switch") { hit.collider.GetComponent <SwitchController> ().SendLightMessage(); } } } }