private void creacionInicial() { Debug.Log(FuncTablero.formateaTiempo() + ": Iniciando la creacion desde cero..."); //Trabajar con la textura Textura_Planeta y crear el mapa lógico a la vez Texture2D texturaBase = objetoRoca.renderer.sharedMaterial.mainTexture as Texture2D; Color[] pixels = new Color[texturaBase.width * texturaBase.height]; FuncTablero.inicializa(texturaBase); Debug.Log(FuncTablero.formateaTiempo() + ": Creando ruido..."); pixels = FuncTablero.ruidoTextura(); //Se crea el ruido para la textura base y normales... Debug.Log(FuncTablero.formateaTiempo() + ": Completado. Suavizando polos y bordes..."); pixels = FuncTablero.suavizaBordeTex(pixels, texturaBase.width / 20); //Se suaviza el borde lateral... pixels = FuncTablero.suavizaPoloTex(pixels); //Se suavizan los polos... Debug.Log(FuncTablero.formateaTiempo() + ": Completado. Aplicando cambios..."); texturaBase.SetPixels(pixels); texturaBase.Apply(); Debug.Log(FuncTablero.formateaTiempo() + ": Completado. Extruyendo vertices de la roca..."); float extrusion = 0.45f; MeshFilter Roca = objetoRoca.GetComponent <MeshFilter>(); Mesh meshTemp = Roca.mesh; meshTemp = FuncTablero.extruyeVerticesTex(meshTemp, texturaBase, extrusion, objetoRoca.transform.position); Roca.mesh = meshTemp; Debug.Log(FuncTablero.formateaTiempo() + ": Completado. Construyendo collider..."); //Se añade el collider aqui, para que directamente tenga la mesh adecuada objetoRoca.AddComponent <MeshCollider>(); objetoRoca.GetComponent <MeshCollider>().sharedMesh = meshTemp; Debug.Log(FuncTablero.formateaTiempo() + ": Completado. Calculando y extruyendo vertices del oceano..."); MeshFilter Agua = objetoOceano.GetComponent <MeshFilter>(); Mesh meshAgua = Agua.mesh; meshAgua = FuncTablero.extruyeVerticesValor(meshAgua, FuncTablero.getNivelAgua(), extrusion, objetoOceano.transform.position); Agua.mesh = meshAgua; Debug.Log(FuncTablero.formateaTiempo() + ": Completado. Rellenando detalles..."); //se ajusta la propiedad de nivel de agua del shader objetoOceano.renderer.sharedMaterial.SetFloat("_nivelMar", FuncTablero.getNivelAgua()); objetoOceano.renderer.sharedMaterial.SetFloat("_tamPlaya", FuncTablero.getTamanoPlaya()); Debug.Log(FuncTablero.formateaTiempo() + ": Terminado. Cargando texturas de habitats..."); //obtener la textura de habitats del array de materiales de roca. Habitats esta en la 1ª posicion. Texture2D texElems = objetoRoca.renderer.sharedMaterials[2].mainTexture as Texture2D; //Texture2D texPlantas = objetoRoca.renderer.sharedMaterials[2].mainTexture as Texture2D; Texture2D texHabitatsEstetica = objetoRoca.renderer.sharedMaterials[1].mainTexture as Texture2D; Texture2D texHabitats = objetoRoca.renderer.sharedMaterials[1].GetTexture("_FiltroTex") as Texture2D; Debug.Log(FuncTablero.formateaTiempo() + ": Terminado. Creando el tablero..."); Casilla[,] tablero = FuncTablero.iniciaTablero(texturaBase, texHabitats, texHabitatsEstetica, texElems, Roca.mesh, objetoRoca.transform.position); Debug.Log(FuncTablero.formateaTiempo() + ": Terminado. Creando Vida..."); vida = new Vida(tablero, objetoRoca.transform); Debug.Log(FuncTablero.formateaTiempo() + ": Completada la creacion del planeta."); }