Red de conocimiento informático - Material del sitio web - ¿Cómo implementar la comunicación entre el código de Windows Phone y Unity?

¿Cómo implementar la comunicación entre el código de Windows Phone y Unity?

Primero, cree una solución en blanco. Lo llamaré PettoStudio. Puedes hacer lo que quieras. Solo mire la imagen:

Luego confirme e ingrese una solución en blanco sin proyecto. Haga clic derecho en la solución->Agregar->Nuevo proyecto->Busque la plantilla del proyecto WP (porque vs2012 y 2013 son diferentes, por lo que no se puede explicar en detalle)->Seleccione el proyecto de biblioteca de clases WP.

El nombre del proyecto es opcional. Las sugerencias son consistentes con las soluciones anteriores. Si son inconsistentes, no puedo comunicarme con usted.

Haga clic en Aceptar.

La versión del SDK seleccionada es 8.0 (siempre que haya instalado varias versiones del SDK de WP).

Está bien. El proyecto del complemento wp se ha completado.

Tenga en cuenta que si el nombre de su proyecto y el nombre de su solución son diferentes, debe hacer una cosa más aquí (¡no me escuche!)

Haga clic derecho en el nombre de su proyecto - > propiedad. Cambie el nombre del ensamblado y el nombre del espacio de nombres predeterminado para que sean coherentes con su solución.

El proyecto WP está listo, escribamos el código.

Agregue una clase, aquí la llamamos "AUV" y luego escribimos un método (o atributo) estático aquí. Simplemente devolvamos una cadena. El código completo está a continuación.

Cadena estática pública GetAUVString()

{

Devuelve "WP8? ¡¡¡AUV!!!";

}

Está bien. En este punto, la DLL de WP8 está completa, pero esto es solo la mitad del desarrollo del complemento.

Crear Dll falso

Siguiente. Cree un nuevo proyecto Sí, todavía está en este plan, pero esta vez la plantilla debe seleccionar la biblioteca de clases del programa de escritorio de Windows. La versión Net debe elegir 3.5. (¿Qué? ¿Por qué? ¿Por qué tiene que ser 3.5? No lo sé. ¡Por favor, Microsoft y Unity vayan!)

El nombre de este proyecto no se puede escribir como solución. Simplemente escriba FakeDll (biblioteca de enlaces dinámicos falsos) jaja)

Después de la creación, debe cambiar el nombre del ensamblado y el nombre del espacio de nombres predeterminado para que sea coherente con la solución. Esto se hace para engañar con éxito a la unidad. Debo decir que la forma en que Microsoft y Unity implementan los complementos es realmente elegante. Debería ser posible lograr el efecto deseado con cambios mínimos (adiciones). (Esto también puede traer un gran problema a nuestros desarrolladores, y se enojarán...)

OK, luego repita la operación y cree la misma clase. nombre y nombre del método como el proyecto WP integrado en este proyecto FakeDll. Lo único que puede diferir es la implementación interna. Como se muestra a continuación:

Aquí está el código de la clase AUV:

AUV de nivel público

{

Cadena estática pública GetAUVString ()

{

Devuelve "¿No es WP8? ¡¡¡AUV!!!";

}

}

Mmmm. Esto es "¿No es WP8? ¡¡¡AUV!!!";

En este punto, se completa el desarrollo del complemento y se compilan dos archivos DLL.

Agregar Unity

Copie la DLL generada por el proyecto FakeDll en la ruta Assect/Plugins de Unity (¿Qué? ¿No hay una carpeta de complementos? ¿Entonces no crea una nueva usted mismo? );

Copie la DLL generada por el proyecto wp en la ruta Assect/Plugins/WP8 de Unity (tenga en cuenta que WP8 está en mayúsculas, no sé si las minúsculas están bien. Soy demasiado vago para intentarlo. Si tengo un amigo muy diligente, puedes probarlo y por cierto decirme el resultado (gracias).

Después de completar la operación anterior, el resultado es el siguiente:

Luego cree un script test.cs y abra vs para editarlo. El código es el siguiente:

Cadena privada _ auv

void OnGUI()

{.

GUI.

Etiqueta(nuevo Rect(100, 200, 200, 150), _ AUV

if(GUI.Button(nuevo Rect(100, 400, 200, 150), "BeFucked")) p>

{

_auv = PettoStudio. Complementos de WP. AUV. getauvstring();

}

}

Luego guárdelo. Vuelva a Unity, pruébelo, haga clic en el botón BeFucked y vea los resultados. ¿Cuál es la realidad?

"¿No es WP8? ¡¡¡AUV!!!" ¿Por qué es esto? ¿Dónde se ejecuta este código? Así es, ¡es el código en FakeDLL! ¿Por qué no en WP8?

Ah, debido a que está ejecutando en Windows, Unity ejecutará automáticamente el código en el complemento de acuerdo con el entorno.

Bien, implementémoslo en WP y probémoslo.

Mira los resultados de la ejecución:

"WP8? ¡¡¡AUV!!!"; Esto es lo que queremos.