public Image imagenInteractuar; //ImagenInteractuar es la imagen de la mano que se muestra al poder interactuar con un objeto void OnTriggerStay(Collider other) { if (other.tag == "MainCamera") { if (Physics.Raycast(other.transform.position, other.transform.forward, 3f, objetos)) //Al entrar en el collider, comprobamos si estamos mirando al objeto con el que hay que interactuar mediante un Raycasting desde la cámara { Debug.Log("Mirando a ankh"); //Si es así: imagenInteractuar.color = new Color(1f, 1f, 1f, 1f); //Mostramos la imagen de la mano, para que el jugador sepa que puede interactuar con un objeto inventario invent = GameObject.Find("Inventario").GetComponent <inventario> (); //Si es un puzzle para el que es necesario un objeto concreto, necesitaremos el objeto inventario if (Input.GetMouseButtonDown(0)) { if (!invent.IsSeleccionado("palanca")) //Si no tenemos el objeto seleccionado, el jugador dice que necesita ese objeto { StartCoroutine(ShowMessage("Voy a necesitar algo para arrancarlo.", 4)); } else //Si lo tiene seleccionado: //Sonido { PlaySound(); //Suena un efecto de sonido, para que el jugador sepa que ha interactuado con el objeto //Fin sonido coleccionables.SendMessage("ActivaAnkh"); //Cambia la variable booleana del script Coleccionables Destroy(transform.parent.gameObject, 0.2f); //Destruye el objeto padre del Trigger, para no poder volver a interactuar con el objeto invent.QuitarObjeto("palanca"); //Quita/añade objetos al inventario si procede invent.AñadirObjeto("ankh"); imagenInteractuar.color = new Color(1f, 1f, 1f, 0f); //Pone la imagen de la mano totalmente invisible } } else { imagenInteractuar.color = new Color(1f, 1f, 1f, 0f); //Si estás en el collider pero no mirando al objeto, transparenta la imagen de la mano } } } }
void OnTriggerStay(Collider other) { if (other.tag == "MainCamera") { if (Physics.Raycast(other.transform.position, other.transform.forward, 3f, objetos)) { Debug.Log("Mirando a reloj"); if (coleccionables.botella) { imagenInteractuar.color = new Color(1f, 1f, 1f, 1f); if (Input.GetMouseButtonDown(0)) { inventario invent = GameObject.Find("Inventario").GetComponent <inventario>(); invent.AñadirObjeto("llave"); invent.QuitarObjeto("acertijo"); coleccionables.SendMessage("ActivaReloj"); this.gameObject.SetActive(false); imagenInteractuar.color = new Color(1f, 1f, 1f, 0f); } } } else { imagenInteractuar.color = new Color(1f, 1f, 1f, 0f); } } }
void OnTriggerStay(Collider other) { if (other.tag == "MainCamera" && coleccionables.carpetaDejada) { if (Physics.Raycast(other.transform.position, other.transform.forward, 3f, objetos)) { Debug.Log("Mirando a monedas"); imagenInteractuar.color = new Color(1f, 1f, 1f, 1f); if (Input.GetMouseButtonDown(0)) { coleccionables.SendMessage("ActivaCogerMonedas"); inventario inventario = GameObject.Find("Inventario").GetComponent <inventario>(); inventario.AñadirObjeto("monedas"); Destroy(transform.parent.gameObject); imagenInteractuar.color = new Color(1f, 1f, 1f, 0f); } } else { imagenInteractuar.color = new Color(1f, 1f, 1f, 0f); } } }