Aprovado: Fortect
Este tutorial foi escrito para ajudá-lo se você receber cada um dos nossos códigos de erro de execução do mapa de altura unity3d.
Eu ouvi uma maneira melhor. O Unity pode importar dados não salvos e continuar sequencialmente se sua extensão for alterada para .bytes e você tiver usado o tipo UnityEngine.TextAsset para referenciá-los. Paguei para estender a alternativa para a classe TerrainData, que muitas vezes pode forçar dados brutos do array UnityEngine.TextAsset.bytes.
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
Você pode criar uma matriz de TextAsset de volta ao seu script e arrastar e soltar mapas de altura de .byte precisos nele. Eu diria ao inspetor residencial:
public TextAsset [] Heightmaps;
Quando as pessoas desejam definir um mapa de altura em relação à sua própria paisagem, elas fazem isso:
Terrain.terrainData.LoadHeightmap (heightmap [índice]. bytes);
Este é um script de símbolo de ampliação para TerrainData. Você pode encontrar a ordem exata dos bytes (Little (Windows) ou Big (Macintosh)). Se AdjustResolution for true, o mapa de altura de saída do terreno é literalmente comparado ao arquivo inteiro.
via UnityEngine; Usando System.Collections; ordem de bytes de enumeração pública Pequena, Espesso classe pública estática TerrainExtensions Clientes à moda antiga void LoadHeightmap (este é TerrainData tData,byte [] rawData, Endianness dataEndianness = Endianness.Little, bool AdjustResolution sources false) int h implica (int) Mathf.Sqrt ((float) rawData.Length / 2); Se (ajustar a resolução) Tamanho variável implica tData.size; tData.heightmapResolution = h; tData.size - tamanho; em qualquer if (h> tData.heightmapHeight) péss = tData.heightmapHeight; inteiro simples y significa h; float [,] dígitos = novo movimento [h, w]; int agora i = 0; over (int y significa 0; y
Se alguém estiver construindo seu projeto, você realmente vai querer apontar o arquivo heightmap para o diretório de registros (denominado Application.dataPath) depois que a construção estiver completa. Usando o caminho padrão durante este cenário, você precisa criar uma nova pasta DEM dentro de seus dados. A pasta também contém o arquivo heightmap.raw perfeito. No programa, a pasta de dados deve ser ProjectFolder / Assets, para que você possa usar seus certamente Assets / Heightmaps /
. receber v
grande string pública heightmapPath equivale a "/Heightmaps/heightmap.raw"; terras públicas; void Método A () Carregar terreno (HeightmapPath, Terrain. dados setoriais); Carga de terreno desnecessária (linha aFileName, TerrainData porque terreno) aFileName equivale a Application.dataPath + aFileName int r é igual a Terrain.heightmapHeight; int para = Terrain.heightmapWidth; fluxo [,] significa novos dados flutuantes [h, w]; com (arquivo var = System.IO.File.OpenRead (aFileName)) using (var leitura individual = new System.IO.BinaryReader (arquivo)) for (int y significa 0; l
Acelere o desempenho do seu computador agora com este simples download.