Utilisation des services Cloud pour faire un Leaderboard pour un jeu Unity - Connexion Microsoft Faculté

Utilisation des services Cloud pour faire un Leaderboard pour un jeu Unity - Connexion Microsoft Faculté
Mise en place Azure et services mobiles

Si vous ne disposez pas d'un compte Azure, alors vous devez vous inscrire pour un.







Utilisation des services Cloud pour faire un Leaderboard pour un jeu Unity - Connexion Microsoft Faculté

Les Azure services mobiles ont un niveau gratuit qui comprend jusqu'à 500 périphériques ainsi que 500k appels API et vous pouvez également utiliser le niveau gratuit jusqu'à 10 services. Cela signifie que vous pouvez tester quelques petites choses sans avoir à payer pour cela.

Azure Mobile Services

De là, vous aurez un popup à remplir pour terminer la création. Le premier champ est le nom du service mobile. Ce nom sera également l'adresse du service. Il doit être unique. Pour cet exemple, je nommé le mien « unityleaderboard ». Le champ suivant est la base de données à utiliser comme arrière pour le service. Vous pouvez choisir de « Utiliser une base de données SQL existante », « Créer une base de données SQL gratuite de 20 Mo » ou « Créer une nouvelle instance de base de données SQL ».

La base de données devra maintenant être configuré. Vous devez configurer le nom d'utilisateur et mot de passe et aussi la région pour faire la base de données.

Maintenant, pour certaines données

Donc, jusqu'à présent, nous avons la configuration du service mobile, mais il n'y a pas encore de données. Allez dans votre nouveau service mobile, puis cliquez sur le lien de données en haut. Vous pouvez maintenant ajouter une nouvelle table à la base de données qui a été installé plus tôt.

L'étape suivante consiste à ajouter les champs de données à la nouvelle table de classement. Cela nous permettra de sauvegarder les données pour le nom d'utilisateur et le score qui est enregistré. Cela va être un échantillon de base et non une base de données optimisée, donc j'ajoutera la UserName comme un simple champ de chaîne à la table. Si cela était un plus grand système prenant en charge plusieurs jeux, je serais probablement faire une table de joueur avec toutes les infos joueurs là-bas et une table leaderboard qui RENVOIS la table des joueurs. Étant donné que c'est juste un leaderboard rapide et simple pour un seul jeu, en gardant le texte brut dans le tableau n'est pas si mal que ça. Le champ Score va être ajouté comme un numéro afin que nous ne devons pas revenir en arrière les numéros de la partition dans un champ de texte. Après avoir cliqué sur le nom de la table, vous pouvez voir et cliquer sur le lien Colonnes pour arriver à ajouter de nouvelles colonnes. Pour ajouter une nouvelle colonne, utilisez le lien Ajouter une colonne au bas de la page.

A ce stade, le nouveau service de leaderboard est en cours d'exécution.

unité GameDev

Unity Plugin pour Azure BitRave fournit un plug-in pour l'unité des services mobiles 3D. Leur repo GitHub comprend des API multi-plateforme (prenant en charge actuellement Windows Store et Windows Phone) et le code exemple.

Avant de commencer

Ce qui suit est un guide d'utilisation du plugin Azure Services mobiles pour l'unité 3D.

Une suite de plug-ins Azure Services mobiles pour Unity3D, multi-plateforme avec des interfaces communes, avec des exemples.

L'objectif est simple. « Il suffit de frapper la construction ». Cela signifie que 1 API, pas de code dépendant de la plate-forme. Le greffon doit cacher intracacies plate-forme, pas les surface.

  • UnityEditor - Support léger dans l'unité de sorte que vous n'avez pas besoin de construire pour tester votre application. Aucune donnée plus Stubbing localement.
  • Windows 8 Store - Utilise la DLL native sous-jacente pour une intégration cohérente et solide
  • Windows Phone 8 - Utilise la DLL native sous-jacente pour une intégration cohérente et solide
5 Second Guide

Mettez les binaires de plug-in dans votre actif / dossier Plugins. Ceux-ci sont construites dans un dossier de sortie dans la racine de la solution dans la bonne structure de dossier. Et il est aussi simple que ...

var data = new LevelSaveData () < SaveData = “some data here “, Id = 1 >;

var = azur nouvelles AzureMobileServices (_azureEndPoint, _applicationKey);

var = azur nouvelles AzureMobileServices (_azureEndPoint, _applicationKey);

azure.Lookup(1, azureResponse =>

if (azureResponse.Status == AzureResponseStatus.Success)

var ourObject = azureReponse.ResponseData;

Les données revient par callbacks et des objets de réponse. L'unité ne prend pas en charge await / async, mais quand il le fait il se déplace sur ce modèle.

initialiser

Est tout aussi Initialiser simple que vous attendez.

service var = new AzureMobileServices ( « url », « jeton »);

Insérer un élément dans votre base de données Azure dans une seule ligne de code à partir de l'unité.

éléments de mise à jour dans l'azur databsae avec une seule ligne de code de l'unité.

Supprimer les éléments de la base de données Azure en 1 ligne de code de l'unité.

Éléments de requête dans votre Azure Services mobiles de l'unité.

service.Where(P => p.Category == « exercice », azureResponse =>

liste exerciseItems = azureRepsonse.ResponseData;







REMARQUE: attendre / async sera disponible lorsque pris en charge par l'unité. Jusque-là, nous utilisons callbacks.

Lookup articles dans votre Azure Services mobiles de l'unité.

service.Lookup(MyItem, azureResponse =>

ToDoItem myToDoItem = azureResponse.ResponseData;

REMARQUE: attendre / async sera disponible lorsque pris en charge par l'unité. Jusque-là, nous utilisons callbacks.

Sur les plateformes prises en charge, LoginAsync peut être appelé pour les services authentifiées.

azure.LoginAsync (AuthenticationProvider.Facebook, loginResponse =>

jeton = loginResponse.ResponseData.MobileServiceAuthenticationToken var;

REMARQUE: attendre / async sera disponible lorsque pris en charge par l'unité. Jusque-là, nous utilisons callbacks.

Solution Visual Studio
Les projets

Il y a plusieurs projets dans la solution.

  • Bitrave.Azure.Editor - Ce Azure prend en charge directement à partir de l'unité éditeur, il est pas entièrement comporté, mais offre un moyen de tester par rapport aux données réelles dans le nuage plutôt que écrasa les données locales.
  • Bitrave.Azure.Stub - Ceci est une classe stub pour aider les projets de construction de l'unité. Il aide à cacher les dépendances complexes qui causent des problèmes avec l'unité.
  • Bitrave.Azure.Windows8 - Le plugin Windows 8 Azure Services mobiles pour l'unité 3D.
  • Bitrave.Azure.Windows8.TestApp - Une application de test pour aider à déboguer les comportements de plug-in car les plug-ins ne peuvent pas être débogués dans Unity 3D.
  • Bitrave.Azure.WindowsPhone8 - Le plugin Windows 8 Azure Services mobiles pour l'unité 3D.
  • Bitrave.Azure.WindowsPhone8.TestApp - Une application de test pour aider à déboguer les comportements de plug-in car les plug-ins ne peuvent pas être débogués dans Unity 3D.
  • RestSharp.Stub - Ceci est une classe de souche qui aide à la construction de l'unité pour les plates-formes spécifiques.

Assurez-vous d'avoir la dernière version de Nuget, puis obtenir les dépendances telles que RestSharp, JSON.NET et Azure Services mobiles. Vous devrez également ajouter une référence à la UnityEngine.dll pour la plate-forme respective. Si vous ne trouvez pas ces DLL UnityEngine, juste construire hors de l'unité d'un projet WP8 blanc ou un projet W8 en blanc, et les DLL respectives se retrouveront dans le projet généré. Si vous souhaitez utiliser la ligne de commande PM pour Azure, la voici:

Une fois que vous avez les DLL tous configurés, appuyez sur la construction.

Une fois construit votre répertoire de solution doit avoir un dossier de sortie. Au sein de c'est une structure de dossiers Plugins avec DLL que vous copiez directement dans le dossier actif de votre projet Unity. Ça devrait ressembler a quelque chose comme ca:

Lorsque vous construisez une plate-forme spécifique, les plug-ins à partir du dossier racine Plugins se remplacés par des DLL avec des noms identiques dans le dossier de la plate-forme. C'est pourquoi le RestSharp.Stub est copié dans WP8 et Metro car il est utilisé seulement pour l'éditeur Unity. Metro et WP8 Azure exploitent les services mobiles DLLs SDK pour leur plate-forme spécifique.

La DLL Windows8 est copié dans le dossier Plugins / Metro depuis Windows 8 projets construire bien hors de l'unité.

L'étape suivante, assurez-vous de copier les bonnes versions de DLL Newtonsoft.Json dans le Plugins, Plugins \ Metro, et Plugins \ dossiers WP8. Copiez également RestSharp dans le dossier Plugins. Ça devrait ressembler a quelque chose comme ca:

Et voilà comment vous avez tout dans l'unité, et vous devriez être bon de commencer à l'utiliser. Comment construire pour chaque plate-forme est ci-dessous.

Pour les plates-formes construction
Windows 8 Apps Store
  1. de l'unité
  2. Sélectionnez Fichier> Créer des paramètres (Ctrl-Shift-B)
  3. Sélectionnez « Applications Windows Store »
  4. Sélectionnez « Build »
  5. Choisissez un dossier pour construire en
  6. Attendez pour construire
  7. Ouvrez la solution générée dans Visual Studio
  8. Vérifiez les références au projet, nous aurons besoin de mettre à jour certaines références.
  9. Retirer RestSharp des références
  10. Retirez Boo.Lang.dll si elle est là, il ne passera pas WACK
  11. Assurez-vous que Newtonsoft.Json.dll est la bonne version pour Windows 8
  12. Ouvrez Package.appxmanifest. Assurez-vous Capabilities-> Internet Client est activé
  13. Gérer les packages NuGet pour le projet, ajoutez le Windows Azure Mobile Services SDK
  14. Vous devriez être bon d'aller!
  15. Générez et exécutez
Windows Phone 8 Apps
  1. de l'unité
  2. Sélectionnez Fichier> Créer des paramètres (Ctrl-Shift-B)
  3. Sélectionnez « Windows Phone 8"
  4. Sélectionnez « Build »
  5. Choisissez un dossier pour construire en
  6. Attendez pour construire
  7. Ouvrez la solution générée dans Visual Studio
  8. Vérifiez les références au projet, nous aurons besoin de mettre à jour certaines références
  9. Retirer Bitrave.Azure et ajouter une référence à Bitrave.Azure.dll du projet Bitrave.Azure.WindowsPhone8 dans elle est bin / dossier de sortie.
  10. Retirer RestSharp.dll, il n'est pas nécessaire
  11. Gérer les packages NuGet pour le projet, ajoutez le Windows Azure Mobile Services SDK
  12. Vous devriez être bon d'aller!
  13. Générez et exécutez
  14. PS - Vous devez déployer sur un téléphone WP8

Création d'une simple unité 2D jeu

Lorsque l'unité est lancée, une boîte de dialogue apparaît avec deux onglets Ouvrir un projet et Créer un nouveau projet. Sélectionnez l'onglet Créer un nouveau projet et entrez un nom pour le projet. En bas à gauche de la fenêtre, il y a un menu déroulant pour sélectionner 3D ou 2D pour le projet. Sélectionnez 2D puis cliquez sur le bouton Créer pour rendre le projet.

Dans le volet du projet, il y a un nom de dossier actif. Créez trois dossiers, Plugins, Scènes et scripts. Cela crée ces dossiers dans le dossier actif dans le dossier du projet.

Sauvegarde de la scène

Une chose qui aide à ce stade est d'enregistrer manuellement la scène. Sélectionnez le fichier -> Enregistrer option de menu Scène, puis sélectionnez le dossier Scènes et enregistrer la scène, pour ce tutoriel je l'ai appelé MainScene. Cela va créer un fichier MainScene.unity dans le dossier Scènes.

Ajout du plug-in

Ensuite, nous allons prendre le plug-in de la repro GitHub et prendre tous les fichiers du dossier actif dans le projet AzureMobileServicesUniversalPlugin et de les enregistrer dans le même dossier que notre scène.

De là, nous suivrons la deuxième ligne d'instructions et faites glisser le fichier script AzureUI sur l'objet de la caméra principale pour attacher le script. De là, nous allons faire quelques modifications à ce script pour supprimer le login Facebook et de pointer vers le nouveau service de classement que nous avons fait plus tôt. À ce stade, le projet ne sera pas compiler ou exécuter, car il nous manque la Newtonsoft Json.Net DLL.

JSON Bibliothèque

Comme je l'ai dit plus haut, le plug-in de Bit Rave suggère obtenir une bibliothèque JSON à partir du magasin d'actifs.

Leaderboard classe

L'échantillon de BitRave est grande, mais il lie juste à la liste de ToDo échantillon standard que les services mobiles feront pour vous de tester avec.

AzureUI.cs

Ceci est le fichier qui fait tout de l'interface graphique dans ce jeu d'échantillons et d'appeler également le service leaderboard.

Alors, quelle est l'expérience?

Utilisation des services Cloud pour faire un Leaderboard pour un jeu Unity - Connexion Microsoft Faculté

Stacey Mulcahy, faisant un leaderboard en utilisant Azure Mobile Services. Elle a montré comment ajouter le leaderboard à votre jeu HTML5 / JS.







Articles Liés