GDAL в Unity на Ma c OS X, как заставить его работать? - PullRequest
0 голосов
/ 09 июля 2020

Я новичок в Unity, но на данный момент у меня есть сценарий, который может читать .tiff изображения из библиотеки под названием GDAL. Этот скрипт работает на Windows без проблем, я построил скрипт на Windows, IOS, Android и Ma c, и все эти сборки работают. Моя проблема в том, что я создаю этот проект вместе с другими, и это команда, которая использует как Ma c, так и Windows. Как я уже говорил, сценарий отлично работает на Windows как для сборки, так и для запуска в редакторе, но на Ma c я получаю исключение DllNotFoundException, когда запускаю его в редакторе. Я искал решение, но не могу найти что-то, что исправляет ошибку. Я подозреваю, что необходимо установить связь между библиотекой GDAL и Unity. Я следовал этому руководству: (https://medium.com/@jonfoust / using-gcp-nuget-packages-with-unity-8dbd29c42cc4 ), а также пробовал его версию: (https://docs.unity3d.com/Manual/UsingDLL.html) но похоже, что ничего не работает на Ma c.

Чтобы уточнить, я открыт для любых предложений или даже переделки частей моего кода с помощью другой библиотеки, которая работает с .tiff формат. Основная цель проекта - прочитать GEOdata и преобразовать ее в 3D в единстве. Я также использую Unity 2019.4.0f

Ошибка ниже:

DllNotFoundException: gdal_wrap
OSGeo.GDAL.GdalPINVOKE+SWIGExceptionHelper..cctor () (at <ad6f0676969c4da8acea5f1b867ea5af>:0)
Rethrow as TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception.
OSGeo.GDAL.GdalPINVOKE..cctor () (at <ad6f0676969c4da8acea5f1b867ea5af>:0)
Rethrow as TypeInitializationException: The type initializer for 'OSGeo.GDAL.GdalPINVOKE' threw an exception.
OSGeo.GDAL.Gdal.AllRegister () (at <ad6f0676969c4da8acea5f1b867ea5af>:0)
ImportImageData.GetImageData (ImageData imageData, System.String path) (at Assets/FinalScripts/ImportImageData.cs:14)
TerrainScript.loadData (ImageData imageData, System.String imagePath) (at Assets/Scripts/TerrainScript.cs:222)
TerrainScript.Start () (at Assets/Scripts/TerrainScript.cs:45)
...