Mit Cloud Service, um einen Leader für eine Unity Spiel zu machen - Microsoft Faculty Anschluss

Einrichten Azure und Mobile Services
Wenn Sie nicht über ein Azure-Konto haben, dann sollten Sie für eine Anmeldung.

Die Azure Mobile Services haben eine freie Stufe, die auch als 500k-API-Aufrufe zu 500 Geräte enthält und Sie können auch die freie Tier verwenden bis zu 10 Dienste. Dies bedeutet, dass Sie ein paar Dinge testen können, ohne dafür bezahlen zu müssen.
Azure Mobile Services
Von hier aus erhalten Sie ein Popup die Erstellung abzuschließen bis zu füllen. Das erste Feld ist der Name des Mobile Service. Dieser Name wird auch die Adresse für den Dienst sein. Es muss eindeutig sein. Für dieses Beispiel nannte ich mein „unityleaderboard“. Das nächste Feld ist die Datenbank als Backend für den Dienst zu nutzen. Sie können Wahl von „Verwenden Sie eine vorhandene SQL-Datenbank“, „Erstellen Sie eine kostenlose 20 MB SQL-Datenbank“ oder „Erstellen Sie eine neue SQL-Datenbankinstanz“.
Die Datenbank muss nun konfiguriert werden. Sie müssen den Benutzernamen und das Passwort ein und auch die Region für die Herstellung der Datenbank einrichten.
Jetzt für einige Daten
Also bis jetzt haben wir die Setup-Mobile Service, aber es gibt noch keine Daten. Gehen Sie in Ihren neuen Mobile Service und klicken Sie dann auf der Datenverbindung an der Spitze. Sie können nun eine neue Tabelle in der Datenbank hinzufügen, dass das Setup zuvor.
Der nächste Schritt ist die Datenfelder in die neue Rangliste Tabelle hinzuzufügen. Dies wird es uns ermöglichen, die Daten für die Benutzername und das Ergebnis zu speichern, die gespeichert wird. Das wird eine Basisprobe und nicht eine optimierte Datenbank, so dass ich den Benutzernamen nur als ein String-Feld in der Tabelle hinzufügen. Wenn dies ein größeres System unterstützt mehrere Spiele ist, würde ich wahrscheinlich einen Spieler Tabelle mit allen Spielern info dort macht und dann eine Rangliste, die Tabelle, dass Spieler Tabelle verwies Kreuz. Da dies nur eine schnelle und einfache Rangliste für ein einzelnes Spiel, ist der Rohtext in der Tabelle hält nicht so schlimm. Das Score-Feld wird als Nummer hinzugefügt werden, so dass wir die Zahlen der Partitur in ein Textfeld hin und her nicht ändern müssen. auf den Tabellennamen Nach einem Klick, sehen Sie und auf den Spalten Link klicken können, um neue Spalten hinzufügen zu bekommen. Um eine neue Spalte hinzuzufügen, verwenden Sie den Spalt Link am Ende der Seite.
An diesem Punkt der neuen Rangliste Service ist und läuft.
Unity GameDev
Unity-Plugin für Azure von BitRave ein Mobile Services-Plugin für Unity 3D. Ihre GitHub Repo Cross-Plattform-APIs (unterstützt derzeit Windows Store und Windows Phone) und Beispielcode.
Bevor du anfängst
Die unten ist ein Leitfaden für die Azure Mobile Services-Plugin für Unity 3D verwenden.
Eine Reihe von Azure Mobile Services Plugins für Unity3D, Cross-Plattform mit gängigen Schnittstellen, mit Beispielen.
Das Ziel ist einfach. „Drücken Sie einfach bauen“. Das bedeutet, dass 1-API, keinen plattformabhängigen Code. Das Plugin sollte Plattform intracacies verstecken, so dass sie nicht die Oberfläche.
- UnityEditor - Leichte Unterstützung in Unity so brauchen Sie nicht zu bauen Ihre Anwendung zu testen. Keine mehr Anstoßen Daten lokal.
- Windows 8 Store - Verwendet den zugrunde liegenden nativen DLL für eine konsistente und robuste Integration
- Windows Phone 8 - Verwendet den zugrunde liegenden nativen DLL für eine konsistente und robuste Integration
5 Second-Führer
Setzen Sie die Plugin-Binärdateien in Ihre Assets / Plugins-Ordner. Diese gehen in einen Ausgabeordner in der Wurzel der Lösung in der rechten Ordnerstruktur aufgebaut. Und es ist so einfach wie ...
var data = new LevelSaveData () < SaveData = “some data here “, Id = 1 >;
var Azure = new AzureMobileServices (_azureEndPoint, _applicationKey);
var Azure = new AzureMobileServices (_azureEndPoint, _applicationKey);
azure.Lookup
if (azureResponse.Status == AzureResponseStatus.Success)
var ourObject = zu;
Die Daten stammen zurück über Rückrufe und Response-Objekte. Einheit nicht unterstützt await / Asynchron, aber wenn es tut, wird es zu diesem Modell zu bewegen.
Initialisiere
Initialisation ist genauso einfach, wie man erwarten würde.
var service = new AzureMobileServices ( „url“, „Token“);
einen Artikel in Azure-Datenbank in einer einzigen Code-Zeile von Unity einfügen.
Update Artikel in der Azure databsae mit nur einer Codezeile von Unity.
Entfernen von Elementen aus der Azure-Datenbank in 1 Codezeile von Unity.
Abfrage Artikel im Azure Mobile Services von Unity.
service.Where
Liste
HINWEIS: erwarten / Asynchron verfügbar sein wird, wenn sie von Unity unterstützt. Bis dahin sind wir mit Rückrufen.
Lookup Artikel im Azure Mobile Services von Unity.
service.Lookup
Bearbeiten-Element myToDoItem = zu;
HINWEIS: erwarten / Asynchron verfügbar sein wird, wenn sie von Unity unterstützt. Bis dahin sind wir mit Rückrufen.
Auf unterstützten Plattformen können LoginAsync für authentifizierte Dienste aufgerufen werden.
azure.LoginAsync (AuthenticationProvider.Facebook, Login =>
var token = loginResponse.ResponseData.MobileServiceAuthenticationToken;
HINWEIS: erwarten / Asynchron verfügbar sein wird, wenn sie von Unity unterstützt. Bis dahin sind wir mit Rückrufen.
Visual Studio-Lösung
Die Projekte
Es gibt mehrere Projekte in der Lösung.
- Bitrave.Azure.Editor - Das aus dem Unity-Editor direkt Azure Unterstützung bietet, ist es derzeit nicht völlig, sondern bietet eine Möglichkeit, gegen echte Daten in der Cloud zu testen, anstatt stubbed lokale Daten.
- Bitrave.Azure.Stub - Dies ist eine Stub-Klasse für Bauprojekte aus der Einheit zu unterstützen. Es hilft mit komplexen Abhängigkeiten versteckt, die Probleme mit der Einheit führen.
- Bitrave.Azure.Windows8 - Die Windows 8 Azure Mobile Services-Plugin für Unity 3D.
- Bitrave.Azure.Windows8.TestApp - Ein Test-App debuggen das Plugin-Verhalten zu helfen, da die Plugins nicht in Unity 3D debuggt werden können.
- Bitrave.Azure.WindowsPhone8 - Die Windows 8 Azure Mobile Services-Plugin für Unity 3D.
- Bitrave.Azure.WindowsPhone8.TestApp - Ein Test-App debuggen das Plugin-Verhalten zu helfen, da die Plugins nicht in Unity 3D debuggt werden können.
- RestSharp.Stub - Dies ist eine Stub-Klasse, die für die spezifischen Plattformen mit dem Aufbau von Unity unterstützt.
Stellen Sie sicher, dass Sie die neueste Version von Nuget haben, dann die Abhängigkeiten erhalten wie RestSharp, JSON.NET und Azure Mobile Services. Sie müssen auch einen Verweis auf die UnityEngine.dll für die jeweilige Plattform hinzufügen. Wenn Sie diese UnityEngine DLLs finden können, baut nur ein leeres WP8 Projekt der Einheit oder ein leeres W8 Projekt und die entsprechenden DLLs im generierten Projekt enden. Wenn Sie die PM-Befehlszeile für Azure nutzen möchten, hier ist es:
Sobald Sie die DLLs alle konfiguriert haben, schlagen zu bauen.
Einmal sollte Ihre Lösung gebaut Verzeichnis einen Ausgabeordner hat. In diesem Rahmen ist eine Plug-ins-Ordner-Struktur mit DLLs, die Sie direkt in Ihr Unity-Projekt Assets Ordner kopieren. Es sollte wie folgt aussehen:
Wenn Sie sich für eine bestimmte Plattform bauen, erhalten die Plugins von der Wurzel Plugins-Ordner von DLLs mit identischen Namen in der Plattform-Ordner ersetzt. Aus diesem Grunde ist die RestSharp.Stub in WP8 und Metro kopiert wird, da sie nur für das Unity-Editor verwendet wird. Metro und WP8 das Azure Mobile Services SDK DLLs für ihre spezifische Plattform nutzen.
Die Windows8 DLL wird in den Plugins / Metro-Ordner kopiert, da Projekte Windows 8 schön aus der Einheit aufzubauen.
Im nächsten Schritt, stellen Sie sicher, dass Sie die richtigen Versionen von Newtonsoft.Json DLL in den Plugins, Plugins \ Metro und Plugins \ WP8 Ordner kopieren. Kopieren Sie auch RestSharp in den Plugins-Ordner. Es sollte wie folgt aussehen:
Und das ist, wie Sie alles, was in der Einheit, und Sie sollten gut sein, ihn zu benutzen. Wie baut man für jede Plattform ist unten.
Der Aufbau für Plattformen
Windows 8 Store Apps
- von Unity
- Wählen Sie File-> Build-Einstellungen (Ctrl-Shift-B)
- Wählen Sie „Windows Store Apps“
- Wählen Sie „Build“
- Wählen Sie einen Ordner zu erstellen, in
- Warten Sie, um ihn zu bauen
- Öffnen Sie die erzeugte Lösung in Visual Studio
- Überprüfen Sie die Verweise auf das Projekt, wir müssen einige Referenzen aktualisieren.
- Entfernen RestSharp aus den Referenzen
- Entfernen Boo.Lang.dll, wenn es da ist, wird es nicht WACK passieren
- Stellen Sie sicher, dass Newtonsoft.Json.dll die richtige Version für Windows 8
- Aufmachen Package.appxmanifest. Stellen Sie sicher, Capabilities-> Internet Client aktiviert ist
- Verwalten Nuget Pakete für das Projekt, fügen Sie die Windows Azure Mobile Services SDK
- Sie sollten gut zu gehen!
- Aufbau und Betrieb
Windows Phone 8 Apps
- von Unity
- Wählen Sie File-> Build-Einstellungen (Ctrl-Shift-B)
- Wählen Sie „Windows Phone 8"
- Wählen Sie „Build“
- Wählen Sie einen Ordner zu erstellen, in
- Warten Sie, um ihn zu bauen
- Öffnen Sie die erzeugte Lösung in Visual Studio
- Überprüfen Sie die Verweise auf das Projekt, wir müssen einige Referenzen aktualisieren
- einen Verweis auf das Bitrave.Azure.WindowsPhone8 Projekt Bitrave.Azure.dll in seinem ist / Release-Ordner entfernen Bitrave.Azure und hinzufügen.
- Entfernen RestSharp.dll, ist es nicht erforderlich
- Verwalten Nuget Pakete für das Projekt, fügen Sie die Windows Azure Mobile Services SDK
- Sie sollten gut zu gehen!
- Aufbau und Betrieb
- PS - Sie müssen ein WP8 Telefon bereitstellen
Erstellen eines einfach 2D-Unity-Spiel
Wenn die Einheit gestartet wird, erscheint ein Dialog mit zwei Registerkarten Projekt öffnen und Neues Projekt erstellen. Wählen Sie die Registerkarte Neues Projekt erstellen und geben Sie einen Namen für das Projekt. In der linken unteren Ecke des Dialogs gibt es einen Drop-Down für 3D oder 2D für das Projekt auswählen. Wählen Sie 2D und drücken Sie dann auf die Schaltfläche Erstellen, das Projekt zu machen.
Im Projektfenster wird ein Ordnername Assets. Erstellen Sie drei Ordner, Plugins, Szenen und Scripts. Dies schafft diesen Ordner unter den Asset-Ordnern in dem Ordner des Projektes.
Speichern der Szene
Eine Sache, die an dieser Stelle hilft, ist manuell die Szene zu speichern. Wählen Sie die Datei -> Speichern Szene Menüoption und dann die Szenen Ordner auswählen und die Szene speichern, für dieses Tutorial ich es MainScene benannt. Dies wird eine MainScene.unity Datei im Szenen-Ordner erstellen.
Hinzufügen des Plugin
Als nächstes wollen wir das Plugin von der Repro GitHub nehmen und alle Dateien aus dem Asset-Ordner im AzureMobileServicesUniversalPlugin Projekt nehmen und sie in den gleichen Ordner wie unsere Szene speichern.
Von hier aus werden wir die zweite Befehlszeile und ziehen Sie die AzureUI Skriptdatei auf die Hauptkamera Objekt folgen dem Skript zu befestigen. Von hier aus werden wir einige Änderungen an diesem Skript zu machen, die Facebook-Login zu entfernen und sie in der neuen Rangliste Service zu verweisen, die wir früher gemacht. An diesem Punkt wird das Projekt nicht kompiliert oder ausgeführt werden, da wir die Newtonsoft Json.Net DLL fehlen.
JSON-Bibliothek
Wie ich oben sagte, schlägt das Plugin von Bit Rave bekommt eine Json-Bibliothek aus dem Vermögenswert zu speichern.
Leader Klasse
Die Probe aus BitRave ist groß, aber es bindet nur an die Standardprobe ToDo-Liste, die mobilen Dienste machen werden für Dich mit zu testen.
AzureUI.cs
Dies ist die Datei, die alle von der GUI in diesem Beispiel Spiel und auch den Aufruf der Rangliste Dienst tut.
Was ist also die Erfahrung?

Stacey Mulcahy, so dass eine Rangliste mit Azure Mobile Services. Sie zeigte, wie die Rangliste auf Ihrem HTML5 / JS Spiel hinzuzufügen.