Zatwierdzono: Fortect
Ten samouczek został stworzony, aby pomóc Ci, jeśli otrzymasz kod błędu wykonania mapy wysokości unity3d.
Zauważyłem lepszy sposób. Unity może importować niezapisane foldery i kontynuować sekwencyjnie, jeśli ich rozszerzenie zmieniło się tak, aby .bytes i użyto typu UnityEngine.TextAsset, aby pomyślnie się do nich odwoływać. Zapłaciłem za rozszerzenie taktyki dla klasy TerrainData, która często potrafi pogrubić surowe dane z tablicy UnityEngine.TextAsset.bytes.
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
Możesz utworzyć tablicę TextAsset w swoim skrypcie oraz przeciągnąć i upuścić do niego te same mapy wysokości .byte. Powiedziałbym inspektorowi domu:
public TextAsset [] Mapy wysokości;
Gdy ludzie chcą ustawić mapę wysokości na tle krajobrazu, robią to:
Terrain.terrainData.LoadHeightmap (heightmap [indeks]. bajtów);
To jest skrypt symboli proxy dla TerrainData. Możesz znaleźć rodzaj kolejności bajtów (Little (Windows) lub Big (Macintosh)). Jeśli AdjustResolution ma wartość true, wyjściowa mapa wysokości terenu jest dosłownie porównywana z całym plikiem.
przez posiadanie UnityEngine; Korzystanie z System.Collections; publiczna kolejność bajtów wyliczenia Mały, Gruby public statyczna klasa TerrainExtensions Zakłócenia klientów void LoadHeightmap (to jest TerrainData tData,byte [] rawData, Endianness dataEndianness = Endianness.Little, bool AdjustResolution zawiera false) int h równa się (int) Mathf.Sqrt ((zmiennoprzecinkowa) rawData.Length / 2); Jeśli (dostosuj rozdzielczość) Wielkość zmiennej równa się tData.size; tData.heightmapResolution = h; tDane.rozmiar - rozmiar; zwykle jeśli (h> tData.heightmapHeight) metry = tData.heightmapHeight; prosta liczba całkowita y równa się h; float [,] cyfry = nowy ruch [h, w]; int teraz i = 0; dotyczące (int y oznacza 0; y
Jeśli ktoś buduje twój projekt, poprosisz o wskazanie pliku mapy wysokości do katalogu informacji i faktów (oznaczonego Application.dataPath) po zakończeniu kompilacji. Używając domyślnej ścieżki w tym scenariuszu, rodziny muszą utworzyć nowy folder DEM, gdy Twoje dane. Folder zawiera również doskonały plik heightmap.raw. W programie folder danych to tak naprawdę ProjectFolder / Assets, więc możesz użyć jego Assets / Heightmaps /
. odbierać v
duży publiczny łańcuch heightmapPath jest równy "/Heightmaps/heightmap.raw"; grunty publiczne; nieważna metoda () Załaduj teren (HeightmapPath, Terrain). dane dotyczące ścieżki kariery); Niepotrzebne obciążenie terenu (linia aFileName, TerrainData przy rozważaniu terenu) aFileName implikuje Application.dataPath + aFileName int h równa się Terrain.heightmapHeight; int n = Teren.heightmapWidth; flow [,] oznacza nowe dane float [h, w]; with (plik var = System.IO.File.OpenRead (aFileName)) using (var osoba czytająca = new System.IO.BinaryReader (plik)) for (int y oznacza 0; wolne p
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.