Я думаю, что когда вы определяете String
, вы определяете объект. Поэтому вам нужно использовать .equals()
. Когда вы используете примитивные типы данных, вы используете ==
, но с String
(и любым объектом) вы должны использовать .equals()
.
Вы можете получить необходимую помощь по ссылкам, приведенным ниже:
https://github.com/darshanpv/OpenCV4Unity
https: / /forum.unity.com/threads/building-opencv-plugin-for-mac-osx.623662/#post-4179892
Пожалуйста, попробуйте их и дайте мне знать, если у вас возникнут какие-либо проблемы. Просто сфокусируйтесь на части Mac OSX.
Наконец, я пробую этот метод и успешно собираю .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 (для моего случая)
blockquote>Выберите все файлы без "pythonx.x".
Теперь вы должны увидеть список
Frameworks
в вашей среде Xcode IDE, а затем вы можете провести некоторый тест и проверить, успешно ли добавлена сторонняя библиотека.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]