Version: 5.6
Windows Store Apps: Los tipos .NET que faltan en el Backend de Scripting .NET
Windows Store Apps: Depurando en .NET Scripting Backend

Windows Store Apps: Plugins en el .NET Scripting Backend

Managed Plugins

You cannot use Windows Store Apps specific plugins in Unity Editor if you use Windows Runtime APIs (http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx), so we changed a bit how Unity Editor handles them. If you intend to use the plugin only for Windows Store Apps and not in Unity editor, you can skip making a placeholder. If you do this, you need to wrap the code which uses the plugin API with the following:

#if !UNITY_EDITOR
// Plugin code
#endif

Si usted necesita un placeholder (marcador de posición), cree dos versiones de plugins:

  • Uno para el Editor de Unity
  • El otro para Windows Store (Nota: no soportamos assemblies de Windows Phone 8.1 silverlight como plugins para Windows Phone 8.1)

Importante El plugin placerholder (marcador de posición) para el Editor de Unity no puede referenciar UnityEditor.dll, de lo contrario obtendrá el siguiente error:

The Assembly UnityEditor is referenced by Plugin ('Assets/Plugins/Plugin.dll'). But the dll is not allowed to be included or could not be found.

Both of them must share the same name and have the same assembly version. For example, you should place Editor compatible plugin in Assets\Plugins\MyPlugin.dll, and Windows Store Apps specific plugin in Assets\Plugins\WSA\MyPlugin.dll.

  • Go to Assets\Plugins\MyPlugin.dll, select Editor as the only compatible platform

  • Go to Assets\Plugins\WSA\MyPlugin.dll, select Windows Store Apps as the only compatible platform, now go to Windows Store Apps plugin settings

  • Pick ‘Assets\Plugins\MyPlugin.dll’ in the placeholder field, this means that when building to Windows Store apps ‘Assets\Plugins\MyPlugin.dll’ will be used when compiling your scripts, but ‘Assets\Plugins\WSA\MyPlugin.dll’ will be copied to final folder instead of ‘Assets\Plugins\MyPlugin.dll’. This achieves two things - Unity Editor will successfully compile your scripts, but during the game you’ll be using API from Windows Store Apps specific plugin.
    Plugin Inspector

Opción Don’t process

Esta opción se utiliza cuando usted no quiere que Unity parche sus assemblies, usualmente esta opción se debería aplicar para los plugins que contienen un alto uso del Windows Runtime API, y Unity falla en parcharlas.

Configuraciones del Windows Store Apps Plugin

Opciones en la pestaña editor
Opciones en la pestaña editor
Propiedad: Función:
SDK Limita el plugin a las Windows Store Apps construidas con SDK 8.0 o SDK 8.1.
CPU limita el plugin a players 32 bit, 64 bit o ARM
Don’t process (Solamente aplica para managed assemblies) Desactiva el patching (parcheo) para esta assembly. El patching se necesita cuando las assemblies contienen clases serializables por Unity. En estos casos, un código IL adicional se inyecta a las assemblies. Si usted está seguro que las assemblies no tienen tales clases, entonces es seguro desactivar el patching. Nota: si la assembly no está patched, y Unity intenta serializarla en tiempo de ejecución, usted obtendrá un error ‘Out of bounds’ u otro similar.
Placeholder (Solamente aplica para managed assemblies). Con las Windows Store Apps usted puede tener los plugins compilados contra .NET Core, pero ya que el Editor de Unity corre en Mono, fallará al reconocer tales assemblies. Como resultado, los archivos C# o JS no serán capaz de referenciarlos. Para superar esto, tendrá que proporcionar una assembly compilada contra .NET 3.5 con un API idéntico que funcionaría como un placeholder (marcador de posición) para el plugin verdadero.

Ejemplo Placeholder (marcador de posición)

Por ejemplo, digamos que usted tiene dos assemblies:

  • Plugins\WSA\MyPlugin.dll - assembly compiled against .NET Core with Windows Runtime API inside.

  • Plugins\MyPlugin.dll - assembly compiled against .NET 3.5 which has identical public API with dummy function implementations.

Click on Plugins\WSA\MyPlugin.dll, select Placeholder and pick Plugins\MyPlugin.dll.

This way when Unity compile scripts it will reference Plugins\MyPlugin.dll file, but when Unity will copy plugins to final directory, it will copy Plugins\WSA\MyPlugin.dll instead of Plugins\MyPlugin.dll.

Qué sucede si Unity no va a patch (parchear) sus assemblies?

Unity inyecta código de serialización a sus assemblies, significando que si usted tiene una clase derivada de MonoBehaviour en su plugin, y Unity no lo patch, podría obtener un error de serialización durante el tiempo de ejecución.

Both of them must share the same name. For example, you should place an Editor compatible plugin at Assets\Plugins\MyPlugin.dll, and a Windows Store Apps specific plugin at Assets\Plugins\WSA\MyPlugin.dll. When you’re working in Editor the Assets\Plugins\MyPlugin.dll will be used, and when you’re building to a Windows Store Apps app the Assets\Plugins\WSA\MyPlugin.dll will copied over to the build.

Windows Store Apps: Los tipos .NET que faltan en el Backend de Scripting .NET
Windows Store Apps: Depurando en .NET Scripting Backend
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961