コード例 #1
0
    public void CargarValor(int IDObjeto, int numVariable, int valorNegativo)
    {
        GameObject interactuableGO = Manager.instance.GetInteractuable(IDObjeto);

        if (interactuableGO == null)
        {
            //Carga los datos del directorio predeterminado o del de guardado si hay datos guardados
            if (System.IO.File.Exists(Manager.rutaInterDatosGuardados + IDObjeto.ToString() + ".xml"))
            {
                datos = ObjetoDatos.LoadInterDatos(Manager.rutaInterDatosGuardados + IDObjeto.ToString() + ".xml");
            }
            else
            {
                datos = ObjetoDatos.LoadInterDatos(Manager.rutaInterDatos + IDObjeto.ToString() + ".xml");
            }
        }
        else
        {
            InteractuableObjeto interactuableObjeto = interactuableGO.GetComponent <InteractuableObjeto>();
            datos = interactuableObjeto.DevuelveDatos();
        }

        valorInicial = datos.DevuelveValorVariable(numVariable);

        if (valorInicial == valorNegativo)
        {
            activado = false;
        }
        else
        {
            activado = true;
        }

        this.numVariable = numVariable;
        activadoActual   = activado;

        CargarLuz();
    }
コード例 #2
0
ファイル: Manager.cs プロジェクト: emiliomm/ProjectY
    //Crea un interactuable en la escena con las coordenadas y rotación especificadas
    public void CrearInteractuable(int IDInteractuable, int tipo, Vector3 coord, Quaternion rot)
    {
        GameObject interactuableGO;

        switch (tipo)
        {
        default:
        case 0:         //Tipo NPC
            interactuableGO = (GameObject)Instantiate(Resources.Load("InteractuableNPC"));
            InteractuableNPC interactuableNPC = interactuableGO.gameObject.GetComponent <InteractuableNPC>();
            interactuableNPC.ID = IDInteractuable;
            break;

        case 1:         //Tipo Objeto
            interactuableGO = (GameObject)Instantiate(Resources.Load("InteractuableObjeto"));
            InteractuableObjeto interactuableObjeto = interactuableGO.gameObject.GetComponent <InteractuableObjeto>();
            interactuableObjeto.ID = IDInteractuable;
            break;
        }

        interactuableGO.transform.position = coord;
        interactuableGO.transform.rotation = rot;
    }
コード例 #3
0
ファイル: Manager.cs プロジェクト: emiliomm/ProjectY
    //Crea un interactuable en la escena en un transporte que conecta con la escena anterior
    public void MoverInteractuableDesdeOtraEscena(int IDInteractuable, int tipo, int IDEscenaAnterior, Vector3 coord, Quaternion rot)
    {
        GameObject interactuableGO;

        switch (tipo)
        {
        default:
        case 0:         //Tipo NPC
            interactuableGO = (GameObject)Instantiate(Resources.Load("InteractuableNPC"));
            InteractuableNPC interactuableNPC = interactuableGO.gameObject.GetComponent <InteractuableNPC>();
            interactuableNPC.ID = IDInteractuable;

            //Si el interactuable es de tipo NPC, lo creamos en un transporte
            GameObject transporteGO = EncontrarTransporteEscena(IDEscenaAnterior);

            if (transporteGO != null)
            {
                interactuableGO.transform.position = transporteGO.transform.position;
                interactuableNPC.SetRuta(coord);

                GameObject rutaColliderGO = new GameObject("RutaCollider");
                rutaColliderGO.transform.position = coord;
                BoxCollider boxCollider = rutaColliderGO.AddComponent <BoxCollider>();
                boxCollider.size      = new Vector3(3.7f, 6.68f, 1f);
                boxCollider.isTrigger = true;

                RutaCollider rutaCollider = rutaColliderGO.AddComponent <RutaCollider>();
                rutaCollider.SetIDInteractuable(IDInteractuable);

                if (transporteGO.GetComponent <TransporteInter>().ComprobarSiEsTransporteObjeto())
                {
                    transporteGO.transform.parent.GetComponent <InteractuableObjeto>().SetNavObstacle(false);

                    GameObject transporteColliderGO = new GameObject("TransporteCollider");
                    transporteColliderGO.transform.SetParent(transporteGO.transform, false);
                    BoxCollider boxcollider = transporteColliderGO.AddComponent <BoxCollider>();
                    boxcollider.size      = new Vector3(3.7f, 6.68f, 1f);
                    boxcollider.isTrigger = true;

                    SaliendoTransporteCollider saliendoTransporteCollider = transporteColliderGO.AddComponent <SaliendoTransporteCollider>();

                    saliendoTransporteCollider.SetIDInteractuable(IDInteractuable);
                    saliendoTransporteCollider.SetTransporte(transporteGO);
                }
            }
            else
            {
                interactuableGO.transform.position = coord;
                interactuableGO.transform.rotation = rot;
            }
            break;

        case 1:         //Tipo Objeto
                        //Si el interatuable es de tipo objeto, lo creamos directamente
            interactuableGO = (GameObject)Instantiate(Resources.Load("InteractuableObjeto"));
            InteractuableObjeto interactuableObjeto = interactuableGO.gameObject.GetComponent <InteractuableObjeto>();
            interactuableObjeto.ID = IDInteractuable;

            interactuableGO.transform.position = coord;
            interactuableGO.transform.rotation = rot;
            break;
        }
    }