Beispiel #1
0
    //Al detectar la salida de una colisión con un trigger, comprueba que se trata de un gameObject Accion
    void OnTriggerExit(Collider other)
    {
        //Si se ha colisionado con un gameObject Accion, se desactiva la acción en la clase interactuable
        if (other.tag == "AccionUI")
        {
            AccionObjeto accionObjeto = other.GetComponent <AccionObjeto>();

            if (accionObjeto.GetID() == interactuable.ID)
            {
                interactuable.SetAccionActivaNull();
            }
        }

        //Volvemos al material original si hemos dejado de colisionar con el jugador
        if (other.tag == "Player")
        {
            gameObject.GetComponent <Image>().material = Resources.Load("UI") as Material;            //Mover la carga del material a otro sitio (Manager)
        }
    }
Beispiel #2
0
    //Al detectar una colisión con un trigger, comprueba que se trata de un gameObject Accion
    void OnTriggerEnter(Collider other)
    {
        //Si se ha colisionado con un gameObject Accion, se activa la acción en la clase interactuable
        //para que este sepa que acción está en contacto con el cursor
        if (other.tag == "AccionUI")
        {
            AccionObjeto accionObjeto = other.GetComponent <AccionObjeto>();

            if (accionObjeto.GetID() == interactuable.ID)
            {
                interactuable.AsignarAccionActiva(accionObjeto.GetIndice());
            }
        }

        //Cada vez que colisionamos con el jugador, cambiamos el material para que el cursor se muestre correctamente sin atravesar la geometría del jugador
        if (other.tag == "Player")
        {
            gameObject.GetComponent <Image>().material = Resources.Load("UI2") as Material;            //Mover la carga del material a otro sitio (Manager)
        }
    }
Beispiel #3
0
    //Elimina o añade acciones que dependen de los objetos disponibles en el inventario
    public void RecargarAcciones(Inventario inventario)
    {
        for (int i = acciones.Count - 1; i >= 0; i--)
        {
            //Comprobamos si los requisitos para mostrar la accion
            //son correctos. Si lo son, creamos la accion, solo si no existía anteriormente
            if (MostrarAccion(acciones[i], inventario))
            {
                //Comprobamos si la acción que queremos añadir ya está actualmente en la lista
                GameObject accionGO = accionesGO.Where(x => x.name == "Accion" + i.ToString()).SingleOrDefault();

                //Si la accion no existe, la añadimos
                if (accionGO == null)
                {
                    accionGO = new GameObject("Accion" + i.ToString());
                    AccionObjeto accionObjeto = accionGO.AddComponent <AccionObjeto>();
                    accionObjeto.Inicializar(ID, i);

                    CargaAccionGO(accionGO, i);
                }
            }
            //comprobamos si la acción ya existía para eliminarla
            else
            {
                GameObject accionGO = accionesGO.Where(x => x.name == "Accion" + i.ToString()).SingleOrDefault();

                //Si la accion existe, la eliminamos
                if (accionGO != null)
                {
                    accionesGO.Remove(accionGO);
                    Destroy(accionGO);
                }
            }
        }

        //Cargamos la UI de las acciones actuales
        CargarAccionesUI();

        //Ocultamos el texto de las acciones
        DesactivarTextoAcciones();
    }
Beispiel #4
0
    //Rellena las listas de acciones
    private void CargarAcciones()
    {
        accionesGO = new List <GameObject>();

        //Si existe un fichero guardado, cargamos ese fichero, sino cargamos el fichero por defecto
        if (System.IO.File.Exists(Manager.rutaDatosAccionGuardados + ID.ToString() + ".xml"))
        {
            acciones = LoadDatosAccion(Manager.rutaDatosAccionGuardados + ID.ToString() + ".xml");
        }
        else
        {
            acciones = LoadDatosAccion(Manager.rutaDatosAccion + ID.ToString() + ".xml");
        }

        //Cargamos el inventario, necesario para comprobar si ciertas acciones se muestran
        Inventario inventario;

        //Cargamos el inventario si existe, sino lo creamos
        if (System.IO.File.Exists(Manager.rutaInventario + "Inventario.xml"))
        {
            inventario = Inventario.LoadInventario(Manager.rutaInventario + "Inventario.xml");
        }
        else
        {
            inventario = new Inventario();
        }

        //Creamos los gameObject que representan las acciones
        for (int i = 0; i < acciones.Count; i++)
        {
            //Comprobamos si los requisitos para mostrar la accion son correctos. Si lo son, creamos la accion
            if (MostrarAccion(acciones[i], inventario))
            {
                GameObject   AccionGO     = new GameObject("Accion" + i.ToString());
                AccionObjeto accionObjeto = AccionGO.AddComponent <AccionObjeto>();

                accionObjeto.Inicializar(ID, i);

                //Carga la acción en la lista de acciones GameObjects
                CargaAccionGO(AccionGO, i);
            }

            //Carga el dialogo si la accion es de tipo dialogo aunque no se muestre
            if (acciones[i].GetType() == typeof(DatosAccionDialogo))
            {
                DatosAccionDialogo datosAccionDialogo = acciones[i] as DatosAccionDialogo;
                datosAccionDialogo.CargaDialogo();

                Dialogo dialogo = datosAccionDialogo.DevuelveDialogo();

                //Cargamos las intros a distancia de la acciónDialogo (si los tiene)
                //Si el dialogo es a distancia creamos el box collider
                for (int j = 0; j < dialogo.DevuelveNumeroIntros(); j++)
                {
                    if (dialogo.IntroEsADistancia(j))
                    {
                        CrearDialogoADistanciaArea(dialogo, j);
                    }
                }
            }
        }

        //Cargamos la UI de las acciones actuales
        CargarAccionesUI();

        //Ocultamos el texto de las acciones
        DesactivarTextoAcciones();
    }