This page describes Native Code Plugins for the Tizen platform.
1 Определите внешний метод в файле C# следующим образом:
[DllImport ("PluginName")]
private static extern float FooPluginFunction();
#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.
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.
Unity Tizen supports limited native-to-managed callback functionality via UnitySendMessage:
UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");
Эта функция имеет три параметра: имя целевого GameObject, метод скрипта для вызова на этом объекте и строки сообщения, передаваемой вызываемому методу.
Известные ограничения:
function MethodName(message:string)