Loupe

#Unity : comment écrire et utiliser un plugin pour #Windows Phone 8.0

Unity propose un mécanisme de plugin : depuis votre code Unity cross-plateformes vous pouvez utiliser du code “natif” spécifique à une plateforme. Chaque plateforme aura donc son implémentation spécifique. Dans cet article nous allons voir comment réutiliser nos compétences de développeurs Windows Phone pour écrire un plugin permettant de demander à l’utilisateur de noter notre jeu. Cela nous a notamment beaucoup servi lors de l’écriture de notre jeu Hilight.

 

Fonctionnement et arborescence de dossiers à mettre en place

Unity a un fonctionnement très simple pour trouver un plugin : il va chercher les assemblies natives dans le dossier “Plugins/[NomDeLaPlateforme]”. Dans notre cas, nous allons donc devoir mettre notre DLL dans le dossier “Plugins/WP8”.

 

Par contre, Unity a aussi besoin de savoir ce qu’il y aura dans votre DLLs au moment où vous écrivez du code et dans l’éditeur. Il faut donc lui fournir une DLL “sans implémentation” que l’on mettra dans le dossier “Plugins”. Cette DLL servira juste de définition et elle ne devra donc pas executer de code.

En résumé nous avons donc :

  • L’implémentation réelle sous la forme d’une DLL dans le dossier “Plugins/WP8”.
  • L’implémentation “factice” sous la forme d’une DLL dans le dossier “Plugins”.

 

Création de l’implémentation réelle

Commencons par créer un nouveau projet pour l’implémentation réelle du plugin que l’on va nommer “UnityHelpers.WP”. Ce projet sera de type “Class Library” et vous devez choisir “Windows Phone 8.0" comme plateforme.

RealProject

Dans ce projet, nous ajoutons une classe ReviewHelpers avec l’implémentation du plugin utilisant du code Windows Phone :

public class ReviewHelpers
{
    public static void AskForReview()
    {
        new Microsoft.Phone.Tasks.MarketplaceReviewTask().Show();
    }
}

 

Création de l’implémentation factice pour l’éditeur

Il faut maintenant créer la DLL factice pour l’éditeur qui sera un projet ciblant le framework .NET 3.5 que l’on va appeler “UnityHelpers.WP.Fake”

FakeProject

 

Ensuite, nous allons copier-coller le fichier correspondant à notre classe dans ce nouveau projet et modifier son implémentation pour ne plus faire référence au code Windows Phone qui n’est plus disponible (nous sommes dans l’éditeur).

public class ReviewHelpers
{
    public static void AskForReview()
    {
        //Fake
    }
}

 

Utilisation dans votre code Unity

Il faut maintenant copier-coller les 2 DLLs générées dans Unity pour pouvoir les utiliser. Allez les chercher dans les dossiers de sortie des projets et :

  • Copiez “UnityHelpers.WP.dll” dans le dossier “Plugins/WP8”
  • Copiez “UnityHelpers.WP.Fake.dll” dans le dossier “Plugins”

 

Vous pouvez maintenant utiliser ce code dans vos scripts de façon naturelle (pas besoin de faire de DLLImport d’ailleurs). On ne ciblera bien ici que Windows Phone 8 en utilisant les directives de pré-compilation :

#if UNITY_WP8

     UnityHelpers.WP.ReviewHelpers.AskForReview();

#endif

 

Bon code !

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus