Version: 2017.2
Features currently not supported by Unity Tizen
Tizen Emulator

Building Plugins for Tizen

This page describes Native Code Plugins for the Tizen platform.

Building an Application with a Native Plugin for Tizen

1 Определите внешний метод в файле C# следующим образом:

[DllImport ("PluginName")]
private static extern float FooPluginFunction();
  1. Set the editor to the Tizen build target
  2. Create a Tizen Native Shared Library project from the Tizen IDE.
  3. All native functions that you want to use from managed code need to have the EXPORT_API attribute added to their definitions. The header tizen.h also needs to be included for access to the EXPORT_API macro.
#include <tizen.h>

EXPORT_API float FooPluginFunction();

Если вы используете C++ (.cpp), при создании плагина вы должны убедиться, что функции объявлены с C-связями, чтобы избежать проблем с коверканьем имен.

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

Plugins written in C do not need this since these languages do not use name-mangling.

Использование вашего плагина в C#

Once built, the shared library should be copied to the Assets->Plugins->Tizen->libs folder. Unity will then find it by name when you define a function like the following in the C# script:

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

Please note that PluginName should not include the prefix (‘lib’) nor the extension (‘.so’) of the filename. You should wrap all native code methods with an additional C# code layer. This code should check Application.platform and call native methods only when the app is running on the actual device; dummy values can be returned from the C# code when running in the Editor. You can also use platform defines to control platform dependent code compilation.

Обратный вызов C# / JavaScript из нативного кода

Unity Tizen supports limited native-to-managed callback functionality via UnitySendMessage:

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

Эта функция имеет три параметра: имя целевого GameObject, метод скрипта для вызова на этом объекте и строки сообщения, передаваемой вызываемому методу.

Известные ограничения:

  1. Только методы скриптов, которые соответствуют следующему образцу, могут быть вызваны из нативного кода: function MethodName(message:string)
  2. Вызовы UnitySendMessage являются асинхронными и имеют задержку в один кадр.
Features currently not supported by Unity Tizen
Tizen Emulator