Как собрать плагин с помощью XCode, включая библиотеку OpenCV (или другую стороннюю библиотеку), чтобы Unity мог ее использовать?

Я думаю, что когда вы определяете String, вы определяете объект. Поэтому вам нужно использовать .equals(). Когда вы используете примитивные типы данных, вы используете ==, но с String (и любым объектом) вы должны использовать .equals().

0
задан TimWong 17 January 2019 в 09:51
поделиться

2 ответа

Вы можете получить необходимую помощь по ссылкам, приведенным ниже:

https://github.com/darshanpv/OpenCV4Unity

https: / /forum.unity.com/threads/building-opencv-plugin-for-mac-osx.623662/#post-4179892

Пожалуйста, попробуйте их и дайте мне знать, если у вас возникнут какие-либо проблемы. Просто сфокусируйтесь на части Mac OSX.

0
ответ дан puru 17 January 2019 в 09:51
поделиться

Наконец, я пробую этот метод и успешно собираю .bundle, который включает в себя другую стороннюю библиотеку для использования Unity.

Позвольте мне взять пример библиотеки OpenCV.

Сначала нажмите project, и вы увидите кнопку Build Setting. Нажмите на него и измените Header Search Paths и Library Search Paths. В моем случае я ввожу /usr/local/Cellar/opencv/3.4.3/include/** и /usr/local/Cellar/opencv/3.4.3/lib/**, затем нажимаю targets и делаю то же самое.

Кроме того, нам нужно добавить библиотеку OpenCV в проект, потому что Unity не может динамически вызывать библиотеку 3-й части в плагине, когда он работает. Итак, вам нужно упаковать их, и тогда Xcode автоматически создаст фреймворк.

Итак, нажмите кнопку Build Phases. Теперь вы можете увидеть Link Binary With Libraries на этой странице, затем нажать кнопку + и нажать add other.... Затем перейдите к пути к библиотеке OpenCV

/usr/local/Cellar/opencv/3.4.3/lib (для моего случая)

Выберите все файлы без "pythonx.x".

Теперь вы должны увидеть список Frameworks в вашей среде Xcode IDE, а затем вы можете провести некоторый тест и проверить, успешно ли добавлена ​​сторонняя библиотека.

enter image description here

c ++:

int ProcessImage()
{
    cv::Mat test(10, 10, CV_8UC1);  //use opencv library
    return test.rows;   // should return 10
}

Заголовок c ++

#include <opencv2/imgproc.hpp>
#include <stdio.h>

extern "C"
{
    int ProcessImage();
}

c #

[DllImport("test")]   /*the name of Plugin is Test*/
private static extern int ProcessImage();

Debug.Log(ProcessImage().ToString());

Результат [ 1141]

enter image description here

0
ответ дан TimWong 17 January 2019 в 09:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: