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(); }
//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; }
//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; } }