Godkänd: Fortect
Den här handledningen bloggades för att hjälpa dig om du får min unity3d heightmap exekveringsfelkod.
Jag fick ett bättre sätt. Unity kan importera osparade format och fortsätta sekventiellt om deras tillägg ändras kan du .bytes och du använde UnityEngine.TextAsset-typen och refererar till dem. Jag betalade för att förlänga rutten för TerrainData-klassen, som ofta kan buffra rådata från arrayen UnityEngine.TextAsset.bytes.
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
Du kan skapa en array av TextAsset hela vägen genom ditt skript och dra och släppa express .byte-höjdkartor till den. Jag skulle säga till heminspektören:
public TextAsset [] Höjdkartor;
När människor vill sätta en höjdkarta mot ett komplett landskap, gör de det:
Terrain.terrainData.LoadHeightmap (höjdkarta [index]. bytes);
Detta är ett tilläggssymbolskript för TerrainData. Du kan hitta en del av byteordningen (Little (Windows) eller Big (Macintosh)). Om AdjustResolution är sant jämförs höjdkartan för terrängutdata faktiskt med hela filen.
tillsammans med UnityEngine; Använda System.Collections; byteordning för offentlig uppräkning Små, Tjock offentlig statisk TerrainExtensions-klass Klienter interferens void LoadHeightmap (detta är TerrainData tData,byte [] rawData, Endianness dataEndianness = Endianness.Little, bool AdjustResolution metod falsk) int h betyder (int) Mathf.Sqrt ((float) rawData.Length / 2); Om (justera upplösning) Variabel storlek är lika med tData.size; tData.heightmapResolution = h; tData.size - storlek; om inte om (h> tData.heightmapHeight) h = tData.heightmapHeight; enkelt heltal y är lika med h; flyta [,] siffror = ny drift [h, w]; int nu i = 0; att arbeta med (int y betyder 0; y
Om någon bygger ditt projekt, måste du peka på heightmap-filen till den kritiska informationskatalogen (betecknad Application.dataPath) efter att builden har fyllts i. Genom att använda standardsökvägen under det här scenariot måste någon skapa en ny DEM-mapp för dina data. Mappen innehåller också en fantastisk heightmap.raw-fil. I programmet är datamappen ofta ProjectFolder / Assets, så du kan använda denna Assets / Heightmaps /
. motta v
stor offentlig sträng heightmapPath betyder "/Heightmaps/heightmap.raw"; allmän mark; ogiltig A-metod () Ladda terräng (HeightmapPath, Terräng. kategoridata); Onödig terrängbelastning (line aFileName, TerrainData över terräng) aFileName motsvarar Application.dataPath + aFileName int l är lika med Terrain.heightmapHeight; int c = Terrain.heightmapWidth; drift [,] betyder nytt dataflytande [h, w]; med (var fil = System.IO.File.OpenRead (aFileName)) använder (var specifik person som läser = ny System.IO.BinaryReader (fil)) för (int y betyder 0; ymca
Snabba upp din dators prestanda nu med denna enkla nedladdning.