Esempio n. 1
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;
        }
    }