Unity는 C/C++로 작성되고 공유 라이브러리(.so)로 패키지화된 Android용 네이티브 플러그인을 지원합니다.
Android용 C++ 플러그인을 빌드하려면 Android NDK를 사용하고 공유 라이브러리 빌드를 위해 필요한 단계에 익숙해져야 합니다.
C++를 사용하여 플러그인을 구현하는 경우 이름 맹글링 문제를 피하기 위해 C 링크로 메서드를 선언해야 합니다.
extern "C" {
float Foopluginmethod ();
}
라이브러리를 빌드한 후 출력 .so 파일을 Unity 프로젝트의 Assets/Plugins/Android 디렉토리에 복사합니다. 인스펙터에서 .so 파일을 Android와 호환되도록 표시하고 드롭다운 상자에 필요한 CPU 아키텍처를 설정합니다.
C# 스크립트에서 네이티브 플러그인의 메서드를 호출하려면 다음 코드를 사용합니다.
[DllImport ("pluginName")]
private static extern float Foopluginmethod();
pluginName에는 접두어(‘lib’) 또는 파일 이름의 확장자(‘.so’)가 포함되어서는 안됩니다. 모든 네이티브 플러그인 메서드 호출을 추가 C# 코드 레이어로 래핑하는 것이 좋습니다. 이 코드는 Application.platform을 확인하고 앱이 실제 디바이스에서 실행될 때만 네이티브 메서드를 호출합니다. 더미 값은 에디터에서 실행할 때 C# 코드에서 반환됩니다. 플랫폼 정의를 사용하여 플랫폼 종속 코드 컴파일을 제어합니다.
This zip archive contains a simple example of a native code plug-in. This sample demonstrates how C++ code is invoked from a Unity application. The package includes a scene which displays the sum of two values as calculated by the native plug-in. You will need the [Android NDK)(https://developer.android.com/ndk/index.html)to compile the plug-in.