이 페이지는 iOS 플랫폼을 위한 Native Code Plugins을 설명합니다.
[DllImport ("_Internal")] private static extern float FooPluginFunction ();
플러그인 구현을 위해 C++ (.cpp) 또는 Objective-C (.mm)를 이용한다면 name mangling issues를 피
하기 위해 함수가 C링키지와 함께 선언되도록 해야합니다.
extern "C" { float FooPluginFunction (); }
iOS 네이티브 플러그인은 실제 장치에서만 불릴수 있으므로 모든 네이티브 코드 함수를 추가적인 C#코드 레이어로 감싸세요. 이
코드는 Application.platform으로 확인할수 있으며 실제 장치에서 실행될때만 본래 함수를 부를수 있고 에디터에서 실행될 때는 모형 값을 리
턴합니다. Bonjour 브라우저 샘플 프로그램을 확인하세요.
유니티 iOS는 제한적인 native→managed callback 기능을 UnitySendMessage을 통하여 지원합니다:
UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");
이 함수는 세개의 파라미터를 가지고 있습니다: 게임 객체 이름, 부를 게임 객체 스크립트 함수, 불려진 함수에 넘겨줄 메세지. 알아야할 제한은:
function MethoName(message:string)
유니티 iOS는 제한적인 자동화된 플러그인 통합을 지원합니다.
다.
을 가능하게 합니다.
_주의:_ 하위 폴더는 지원되지 않습니다.
#기본 코드를 저장하기 좋은 또다른 곳은 에셋 폴더나 그 하위의 다른 폴더들 입니다. Xcode프로젝트에서 참조를 기본 코드 파일에 추가합니다. "Classes" 하위 폴더에서 오른쪽 클릭 후 "Add→Existing files…"를 선택합니다.
네이티브 코드 플러그인의 간단한 사용 예제는 여기에서 찾을 수 있습니다.
이 샘플은 어떻게 Objective-C 코드가 Unity iOS 애플리케이션에서 호출될 수 있는지 잘 보여줍니다. 이 애플리케이션을 굉장히 단순한 Bonjour 클라이언트를 사용합니다. 이 애플리케이션은 Unity iOS 프로젝트(플러그인/Bonjour.cs 는 네이티브 코드로의 C# 인터페이스이며 BonjourTest.js는 그 애플리케이션 로직을 이행하는 JS 스크립트입니다)와 빌드된 XCode 프로젝트에 추가되었을 네이티브 코드(에셋/코드)로 구성되어 있습니다