Version: 2017.2
Unity Tizen이 현재 지원하지 않는 기능(Features currently not supported by Unity Tizen)
Tizen 에뮬레이터(Tizen Emulator)

Tizen용 빌딩 플러그인

이 페이지에서는 Tizen 플랫폼용 네이티브 코드 플러그인에 대해 설명합니다.

Tizen용 네이티브 플러그인으로 애플리케이션 빌드

  1. C# 파일에서 외부 메서드를 다음과 같이 정의합니다.
[DllImport ("PluginName")]
private static extern float FooPluginFunction();
  1. 에디터를 Tizen 빌드 타겟으로 설정합니다.
  2. Tizen IDE에서 Tizen Native Shared Library 프로젝트를 만듭니다.
  3. 관리된 코드에서 사용할 모든 네이티브 기능에는 EXPORT_API 속성을 정의에 추가해야 합니다. EXPORT_API 매크로에 액세스하기 위해 헤더 tizen.h도 포함시켜야 합니다.
# include <tizen.h>

EXPORT_API float FooPluginFunction();

C++(. cpp)를 사용하여 플러그인을 구현하는 경우 이름 맹글링 문제를 방지하기 위해 함수가 C 링크를 사용하여 선언되는지 확인해야 합니다.

extern "C" {
  EXPORT_API float FooPluginFunction();
}

C로 작성된 플러그인은 해당 언어에 이름 맹글링이 사용되지 않으므로 이렇게 할 필요가 없습니다.

C#에서 플러그인 사용

빌드된 공유 라이브러리를 Assets->Plugins->Tizen->libs 폴더로 복사해야 합니다. 그려면 C# 스크립트에서 다음과 같은 함수를 정의할 때 Unity가 이름을 기준으로 라이브러리를 찾습니다.

[DllImport ("PluginName")]
private static extern float FooPluginFunction ();

__PluginName__에는 파일 이름의 접두사(‘lib’)나 확장자(‘.so’)가 포함되지 않아야 합니다. 추가적인 C# 코드 레이어로 모든 네이티브 코드 메서드를 래핑해야 합니다. 이 코드는 앱이 실제 디바이스에서 실행 중인 경우에만 Application.platform을 확인하고 네이티브 메서드를 호출해야 합니다. 에디터에서 실행 중인 경우 C# 코드로부터 더미 값이 반환될 수 있습니다. 플랫폼 정의를 사용하여 플랫폼 기반 코드 컴파일을 제어할 수도 있습니다.

네이티브 코드에서 C#/JavaScript 다시 호출

Unity Tizen은 UnitySendMessage:를 통해 native-to-managed 콜백 기능을 제한적으로 지원합니다.

UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");

이 함수에는 세 개의 파라미터인 타겟 게임 오브젝트의 이름, 해당 오브젝트를 호출할 스크립트 메서드, 호출된 메서드에 전달할 메시지 문자열입니다.

알려진 제한 사항.

  1. 다음 구문에 해당하는 스크립트 메서드만 네이티브 코드에서 호출할 수 있습니다. function MethodName(message:string)
  2. UnitySendMessage 호출은 비동기적이고 1프레임 지연됩니다.
Unity Tizen이 현재 지원하지 않는 기능(Features currently not supported by Unity Tizen)
Tizen 에뮬레이터(Tizen Emulator)