Managed Plugins
Construyendo Plugins para Plataformas de Escritorio

Plugins Nativos

Unity tiene un soporte extensivo para Plugins nativos, los cuales son librerías de código nativo escrito en C, C++, Objective-C, etc. Los plugins le permiten a su código del juego (escrigo en Javascript o C#) para llamar funciones de estas librerías. Esta característica le permite a Unity integrarse con librerías middleware o código de juego C/C++ existente.

Tenga en cuenta: Por razones de seguridad, los plugins no se pueden utilizar en un reproductor web.

Para poder utilizar un plugin nativo usted primero necesita escribir funciones en un lenguaje basado en C para acceder a cualquiera de las características que usted necesite y compilarlas a una librería. En Unity, usted también va a necesitar crear un script C# que llama las funciones en un código en la librería nativa.

El plugin nativo debería proporcionar una interfaz simple en C que el script en C# luego se expone a otros scripts del usuario. También es posible para Unity llamar funciones exportadas por el plugin nativo cuando ciertos eventos de renderización de bajo-nivel ocurren (por ejemplo, cuando un dispositivo gráfico es creado), ver la página Native Plugin Interface para detalles.

Ejemplo

Una librería simple nativa con una sola función podría tener código fuente que se ve así:

    float FooPluginFunction () { return 5.0F; } 

Parra acceder este código dentro de Unity, usted puede utilizar código como el siguiente:

    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 ());
       }
    }

Tenga en cuenta que cuando utilice Javascript usted va a necesitar utilizar la siguiente sintaxis, dónde el DLLNAME es el nombre del plugin que usted ha escrito, o “__Internal” si usted está escribiendo código nativo vinculado estaticamente.

    @DllImport (DLLName)
    static private function FooPluginFunction () : float {};

Creando un Plugin Nativo

En general, los plugins están construidos con compiladores de código nativo en las plataformas destino. Ya que las funciones de plugin utilizan una interfaz de llamado basado en C, usted debe evitar problemas de nombres que se pasa por alto cuando utilice C++, u Objective-C.

Más Información

Managed Plugins
Construyendo Plugins para Plataformas de Escritorio