コード例 #1
0
    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
                }
            }
        }
    }
コード例 #2
0
 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);
         }
     }
 }
コード例 #3
0
 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);
         }
     }
 }