public static void getVecinos(GameObject objeto1, GameObject objeto2) { string nombre1 = objeto1.name.Split('.')[0]; string nombre2 = objeto2.name.Split('.')[0]; int id1; int id2; int.TryParse(nombre1, out id1); int.TryParse(nombre2, out id2); Objeto_principal original = Control_principal.Objprincipal[id1]; Objeto_principal vecinos = Control_principal.Objprincipal[id2]; //Objeto_principal original = Objetoscar[id1]; //Objeto_principal vecinos = Objetoscar[id2]; /* * Objeto_principal original = Objetoscargados.Find(m => m.id == int.Parse(objeto1.name.Split('.')[0])); * Objeto_principal vecinos = Objetoscargados.Find(m => m.id == int.Parse(objeto2.name.Split('.')[0])); */ if (!original.Vecinos.Contains(vecinos)) { original.Vecinos.Add(vecinos); } if (!vecinos.Vecinos.Contains(original)) { vecinos.Vecinos.Add(original); } }
private void OnTriggerEnter(Collider collision) { if (collision.tag == "cubo") { Objeto_principal.getVecinos(gameObject, collision.gameObject); } }
public void crearObjeto(int x, int y, int z) { Vector3 posicion = new Vector3(espacio_cubo * x + xinicio, 0, espacio_cubo * z + zinicio); Vector3 posicionfacil = new Vector3(espacio_cubo * x, espacio_cubo * y, espacio_cubo * z); RaycastHit hit_arribaizquierda; RaycastHit hit_arribaderecha; RaycastHit hit_abajoizquierda; RaycastHit hit_abajoderecha; Listarayos.Clear(); if (Physics.Raycast(new Vector3(espacio_cubo * x + xinicio - 0.5f, espacio_cubo * y + yinicio, espacio_cubo * z + zinicio + 0.5f), Vector3.down, out hit_arribaizquierda, 600, layer)) { Listarayos.Add(hit_arribaizquierda.point.y); //posicion.y = hit.point.y +y*espacio_cubo + 1.5f; } if (Physics.Raycast(new Vector3(espacio_cubo * x + xinicio + 0.5f, espacio_cubo * y + yinicio, espacio_cubo * z + zinicio + 0.5f), Vector3.down, out hit_arribaderecha, 600, layer)) { Listarayos.Add(hit_arribaderecha.point.y); } if (Physics.Raycast(new Vector3(espacio_cubo * x + xinicio - 0.5f, espacio_cubo * y + yinicio, espacio_cubo * z + zinicio - 0.5f), Vector3.down, out hit_abajoizquierda, 600, layer)) { Listarayos.Add(hit_abajoizquierda.point.y); } if (Physics.Raycast(new Vector3(espacio_cubo * x + xinicio + 0.5f, espacio_cubo * y + yinicio, espacio_cubo * z + zinicio - 0.5f), Vector3.down, out hit_abajoderecha, 600, layer)) { Listarayos.Add(hit_abajoderecha.point.y); } posicion.y = Listarayos.Min() + y * espacio_cubo + 0.5f; Color color = new Color(Random.value, Random.value, Random.value); GameObject outobject; if (objectPool.TryGetNextObject(posicion, Quaternion.identity, out outobject)) { //instanciacubovirtual[x, y, z] = outobject; //instanciacubovirtual[x, y, z].name = string.Format("{0}.virtual", this.id); //setPropertyColor(color, instanciacubovirtual[x, y, z]); Instanciaobjetoprinciapl = new Objeto_principal(color, posicionfacil); //Objprincipal.Add(Instanciaobjetoprinciapl.id, Instanciaobjetoprinciapl); this.id = idAhora++; /* * if(idAhora > 1200 && Objeto_principal.idAhora > 1200) * { * idAhora = 0; * Objeto_principal.idAhora = 0; * } */ outobject.name = string.Format("{0}.virtual", this.id); setPropertyColor(color, outobject); Posicion.Add(posicionfacil, outobject); outobject.GetComponent <MeshRenderer>().enabled = true; } }
public void Destruirtodo() { idAhora = 0; Objeto_principal.destruirtodoaca(); objectPool.ClearPool(); Posicion.Clear(); Objprincipal.Clear(); Listarayos.Clear(); objectPool.InstantiatePool(); iteraciones = 0; estado = 0; if (valorx == null) { valorx = GameObject.Find("X_valor").GetComponent <InputField>(); } if (valory == null) { valory = GameObject.Find("Y_valor").GetComponent <InputField>(); } if (valorz == null) { valorz = GameObject.Find("Z_valor").GetComponent <InputField>(); } x_value = int.Parse(valorx.text); y_value = int.Parse(valory.text); z_value = int.Parse(valorz.text); if (int1 == null) { int1 = GameObject.Find("primerint").GetComponent <InputField>(); } if (int2 == null) { int2 = GameObject.Find("segundoint").GetComponent <InputField>(); } if (int3 == null) { int3 = GameObject.Find("tercerint").GetComponent <InputField>(); } if (int4 == null) { int4 = GameObject.Find("cuartoint").GetComponent <InputField>(); } if (int5 == null) { int5 = GameObject.Find("quintoint").GetComponent <InputField>(); } int1_value = int.Parse(int1.text); int2_value = int.Parse(int2.text); int3_value = int.Parse(int3.text); int4_value = int.Parse(int4.text); int5_value = int.Parse(int5.text); generarCubos(); }