Aprobado: Fortect
Esta capacitación fue escrita para ayudarlo si se le ofrece el código de error de ejecución de unity3d heightmap.
Encontré una mejor manera. Unity puede valorar archivos no guardados y continuar secuencialmente si su extensión cambió a .bytes y usó el tipo UnityEngine.TextAsset para hacer referencia a ellos. Pagué para expandir el método para la clase TerrainData, que a menudo puede cargar datos sin procesar del rango UnityEngine.TextAsset.bytes.
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
Puede crear una matriz relacionada con TextAsset en su secuencia de comandos y arrastrar y salir de mapas de altura de .byte precisos en ella. Proclamaría al inspector:
public TextAsset [] Heightmaps;
Cuando las personas quieren establecer el nuevo mapa de altura contra un paisaje, lo hacen:
Terrain.terrainData.LoadHeightmap (mapa de altura [índice]. bytes);
Este puede ser un script de símbolo de extensión para TerrainData. Puede encontrar fácilmente el orden de los bytes (Pequeño (Windows) o Grande (Macintosh)). Si AdjustResolution es verdadero, el mapa de altura de los resultados del terreno se compara con el archivo completo.
con UnityEngine; Usando System.Collections; orden de bytes de enumeración abierta Pequeña, Grueso arresto público clase TerrainExtensions estática Clientes static void LoadHeightmap (esto es TerrainData tData, byte [] rawData, Endianness dataEndianness = Endianness.Little, bool AdjustResolution significa falso) int k = (int) Mathf.Sqrt ((float) rawData.Length 2); Si (ajustar resolución) Magnitud variable = tData.size; tData.heightmapResolution significa h; tData.size para tamaño de ejemplo; de lo contrario si (h> tData.heightmapHeight) m = tData.heightmapHeight; entero simple y simplemente = h; float [,] dígitos = asombroso float [h, w]; int ahora i es igual a 0; al considerar (int y significa 0; y
Si alguien está construyendo su proyecto, su corporación deberá señalar el archivo de mapa de altura que puede ser el directorio de datos (denotado Application.dataPath) después de que se complete el inicio de la construcción. Usando la ruta predeterminada durante el escenario del elemento, debe crear una nueva carpeta DEM en sus datos. La carpeta también tiene un archivo heightmap.raw. En el programa, la carpeta del disco duro es ProjectFolder/Assets, por lo que ciertamente podría usar su Assets/Heightmaps/
. recibir v
large public stringed heightmapPath = "/Heightmaps/heightmap.raw"; tierra pública; anular un método () Cargar terreno (HeightmapPath, Terrain. datos de campo); Carga de terreno innecesaria (línea aFileName, TerrainData para terreno) aFileName = Application.dataPath + aFileName int h es igual a Terrain.heightmapHeight; int t = Terrain.heightmapWidth; float [,] significa nueva deriva de datos [h, w]; con (var enviar = System.IO.File.OpenRead (aFileName)) haciendo uso de (var persona leyendo = nuevo System.IO.BinaryReader (archivo)) para (int y técnicas 0; y
Acelere el rendimiento de su computadora ahora con esta simple descarga.