Plugins (Pro/Mobile-Only Feature)
来源:互联网 发布:sql语句实例教程 编辑:程序博客网 时间:2024/06/09 16:49
Plugins (Pro/Mobile-Only Feature)
Unity has extensive support for Plugins, which are libraries of native code written in C, C++, Objective-C, etc. Plugins allow your game code (written in Javascript, C# or Boo) to call functions from these libraries. This feature allows Unity to integrate with middleware libraries or existing C/C++ game code.
Note: On the desktop platforms, plugins are a pro-only feature. For security reasons, plugins are not usable with webplayers.
In order to use a plugin you need to do two things:-
- Write functions in a C-based language and compile them into a library.
- Create a C# script which calls functions in the library.
The plugin should provide a simple C interface which the C# script then exposes to other user scripts. It is also possible for Unity to call functions exported by the plugin when certain low-level rendering events happen (for example, when a graphics device is created), see the Native Plugin Interface page for details.
Here is a very simple example:
C File of a Minimal Plugin:
float FooPluginFunction () { return 5.0F; }
C# Script that Uses the Plugin:
using UnityEngine;using System.Runtime.InteropServices;class SomeScript : MonoBehaviour { #if UNITY_IPHONE || UNITY_XBOX360 // On iOS and Xbox 360 plugins are statically linked into // the executable, so we have to use __Internal as the // library name. [DllImport ("__Internal")] #else // Other platforms load plugins dynamically, so pass the name // of the plugin's dynamic library. [DllImport ("PluginName")] #endif private static extern float FooPluginFunction (); void Awake () { // Calls the FooPluginFunction inside the plugin // And prints 5 to the console print (FooPluginFunction ()); }}
Note that when using Javascript you will need to use the following syntax, where DLLName is the name of the plugin you have written, or "__Internal" if you are writing statically linked native code:
@DllImport (DLLName)static private function FooPluginFunction () : float {};
Creating a Plugin
In general, plugins are built with native code compilers on the target platform. Since plugin functions use a C-based call interface, you must avoid name mangling issues when using C++ or Objective-C.
For further details and examples, see the following pages:-
- Building Plugins for Desktop Platforms
- Building Plugins for iOS
- Building Plugins for Android
Further Information
- Native Plugin Interface - this is needed if you want to do rendering in your plugin.
- Mono Interop with native libraries.
- P-invoke documentation on MSDN.
Page last updated: 2012-02-02
- Plugins (Pro/Mobile-Only Feature)
- NavMesh Layers (Pro only)
- Light Probes (Pro only)
- IDA Pro 5.2 feature preview
- IDA Pro 5.3 feature preview
- windows mobile 6 feature diagram
- Notes On <Pro jQuery Mobile>
- unity 分析器(仅专业版) Profiler (Pro only)
- Unity 分析器(仅专业版) Profiler (Pro only)
- 分析器(仅专业版) Profiler (Pro only)
- logic pro X 扫不出Waves All Plugins Bundle v9r11
- Windows Mobile多媒体开发总结之Media Player Plugins
- Windows Mobile多媒体开发总结之Media Player Plugins
- Feature CTP Walkthrough: Code Only for the Entity Framework
- plugins
- Plugins
- Azure Mobile Services - Notes of Soft Delete feature
- 遮挡剔除(仅专业版) Occlusion Culling (Pro only)
- LNK2019,LNK1120一个可能编译时产生函数声明与实现不对称的误导提示信息的问题
- AJAX
- 忙碌与黑色的六月-告别我的青春
- 解决 软件包 org.cocos2dx.lib 不存在
- 一个职场人的素养--但求问心无愧
- Plugins (Pro/Mobile-Only Feature)
- SQL Server中的查询
- win8.1 下 eclipse+android 开发环境配置带图详细教程
- UIControl 子类的简单使用
- ocra 打包ruby应用
- 我怎么。。
- Android调试
- Android平台利用OpenCL框架实现并行开发初试
- SpringMVC配置文件applicationContext.xml操作数据源的配置