Goedgekeurd: Fortect
Deze tutorial is geschreven om je te helpen als je de unity3d heightmap-foutcode voor algemene prestaties ontvangt.
Ik heb een betere manier gevonden. Unity kan niet-opgeslagen bestanden importeren en sequentieel doorgaan als hun extensie is gewijzigd, zodat het .bytes wordt en u het type UnityEngine.TextAsset hebt gebruikt om ze te vermelden. Ik heb betaald om de methode uit te breiden wanneer de TerrainData-klasse, die vaak voedingsgegevens kan laden uit de UnityEngine.TextAsset.bytes-array.
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
U kunt een array van TextAsset in uw vertrouwde script maken en daarin nauwkeurige .byte-hoogtekaarten slepen en neerzetten. Ik zou tegen de inspecteur zeggen:
public TextAsset [] Hoogtekaarten;
Als mensen tegenwoordig een hoogtekaart voor een gebied willen plaatsen, doen ze dat:
Terrain.terrainData.LoadHeightmap (heightmap [index] bytes);
Dit is een extensie-tokenscript voor TerrainData. U kunt uw huidige bytevolgorde vinden (Little (Windows) of Big (Macintosh)). Als AdjustResolution waar is, wordt de hoogtekaart van de terreinuitvoer onderzocht voor het hele bestand.
met UnityEngine; System.Collections gebruiken; openbare opsomming bytevolgorde Klein, Dik openbare statische klasse TerrainExtensions Statische kloof LoadHeightmap van clients (dit is TerrainData tData, byte [] rawData, Endianness dataEndianness = Endianness.Little, bool AdjustResolution betekent false) int h betekent (int) Mathf.Sqrt ((float) rawData.Length / 2); Als (resolutie aanpassen) Variabele grootte = tData.size; tData.heightmapResolution = h; tData.grootte - grootte; anders alsof (h> tData.heightmapHeight) komt overeen met tData.heightmapHeight; eenvoudig geheel getal y = h; drift [,] cijfers = nieuwe float [h, w]; int nu i = 0; voor (int p oker betekent 0; y
Als individuen uw project aan het bouwen zijn, moet u u helpen om het heightmap-bestand naar de belangrijke datadirectory te verwijzen (aangeduid als Application.dataPath) nadat de build is voltooid. Gebruikmakend van het standaardpad in dit scenario, vraagt u om een nieuwe DEM-map te maken in uw eigen persoonlijke gegevens. De map bevat ook een heightmap.raw-directory. In het programma is de gegevensmap ProjectFolder / Assets, dus u kunt de Assets / Heightmaps /
gebruiken. ontvangen v
grote openbare string heightmapPath = "/Heightmaps/heightmap.raw"; lokale gemeenschapsgrond; ongeldige Amethode () Laad terrein (HeightmapPath, Terrain. veldgegevens); Onnodige terreinbelasting (regel aFileName, TerrainData om terrein te winnen) aFileName = Application.dataPath + aFileName int t is gelijk aan Terrain.heightmapHeight; int hoofdletter t = Terrein.heightmapWidth; move [,] betekent nieuwe data float [h, w]; met (var bestand = System.IO.File.OpenRead (aFileName)) gebruikend (var persoon die door het materiaal bladert = nieuwe System.IO.BinaryReader (bestand)) voor (int y betekent 0; y gewoon
Versnel de prestaties van uw computer nu met deze eenvoudige download.