Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
 private void OnTriggerEnter(Collider collision)
 {
     if (collision.tag == "cubo")
     {
         Objeto_principal.getVecinos(gameObject, collision.gameObject);
     }
 }
Esempio n. 3
0
    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;
        }
    }
Esempio n. 4
0
 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();
 }