Verband native en Unity app en Connectie met MySQL Databank

Deze week is het de bedoeling om de gegevens die werden berekend in de Unity app om deze door te sturen naar de MySQL databank om zo deze gegevens te kunnen gebruiken voor een website die hieraan gelinkt zal zijn.
Eerst en vooral werd er besproken welke parameters er zinvol waren om naar de databank te sturen. Bij de eerste 3D test bij de Unity App wordt om de 5 seconden de FPS opgeslagen in een variabele, op het einde van deze 3D test worden dan de gegevens getoond op het scherm en op dit moment zou het de bedoeling moeten zijn om deze data door te sturen naar de databank, inclusief de UUID (voor iOS)/Android ID (Voor Android) alsook het type van het toestel en welke OS er op dit moment op het toestel wordt gedraaid. Deze parameters gelden ook voor de 2Dtest. Er worden dus 2 tabellen voorzien, 1 voor de 3Dtest en 1 voor de 2DTest. De 2D test wordt automatisch gedraaid na het bekend maken van de resultaten van de 3D test.

Eerst en vooral moet de Unity App voorzien worden van packages om via een Webservice connectie te maken met de MySQL database. La Mosca heeft hiervoor op Bitbucket een aantal klasses voorzien, de package noemt BBCommunication en verzorgt de communicatie tussen de App en de databank. Eerst en vooral moest deze BBCommunication ge-import worden in het Unity project zelf. Om zo deze klasses te importen in de C# klasse waar de test gedraaid wordt en zo op een bepaald moment de code door te sturen. Eerst wordt een BBServerMessage object aangemaakt (BBServerMessage objServerMessage = new BBServerMessage();) om aan dit object de methode mee te geven over welke tabel we het hebben alsook de parameters die moeten meegestuurd worden Bijvoorbeeld: objServerMessage2.Method = “Upload2DBenchmarkTest”; en objServerMessage2.MethodArguments.Add (“Date”, DateTime.Now);. Waarna we dit object meegeven aan een methode van de klasse BBServerCommunicationHandler die connectie maakt met de Webservice en dus ook deze BBServerMessage stuurt naar de Webservice. Waarna men terug het project kan builden in Unity en zo kan draaien op iOS en Android, het grootste voordeel van Unity. Maar, na het builden van deze App moet men rekening houden dat men voor beide platformen nog apart de BBCommunication package moet importen in het project waar de App gebuild is. Dus, als de App gebuild is voor iOS moet dit project geopend worden in xCode waarna men de BBCommunication “handmatig” moet invoeren in dit project. Alsook als deze App is gebuild voor Android dan moet de BBCommunication package geimport worden in Eclipse. Het is deze week gelukt om zowel op Android als op iOS de Unity Testapp te draaien en de gegevens door te sturen naar de testdatabank van La Mosca. Ik kan de MySQL database bekijken door middel van een remote connection naar een Windows Server waar er een MySQL databank draait en waar ik de MySQL databank kan bekijken met de MySQL Workbench. Het is nu ook de opdracht om dit de doen voor de 2 native testapps die ik heb gemaakt voor Android en iOS die de systeemspecificaties bekijkt van het toestel.

Het zou uiteraard heel handig zijn dat de gegevens van de Unity Testapp gelinkt kunnen worden met de gegevens van de native App die de systeemvereisten bekijkt van het toestel. Want voor de native testapp zal er een andere tabel gebruikt worden in de MySQL databank. Elke smartphone/tablet heeft een uniek nummer, bijvoorbeeld dat elke computer een MAC adres heeft, heeft ook elke smartphone/tablet een uniek adres. Ik heb eerst een onderzoek gedaan welke manieren het beste zijn om een Android toestel te identificeren. Bij Android kan men de Android ID opvragen of de IMEI code van het toestel, ik heb eerst zitten zoeken op het IMEI toestel omdat dit niet kan gewijzigd worden als men een nieuwe installatie doet van het toestel, maar vreemd genoeg kan men in Unity de IMEI code niet opvragen. Waarna ik stootte op de Android ID, (http://answers.unity3d.com/questions/529513/getting-android-id-in-unity.html). Het nadeel hiervan is, als men een “factory reset” uitvoerd dat men een nieuwe Android ID heeft. Ook heb ik een bron horen spreken dat men de IMEI code kan opvragen met SystemInfo.deviceUniqueIdentifier in Unity waar men dan wel de AndroidManifest file moest aanpassen zodat men toegang kreeg tot deze IMEI code, vreemd genoeg is mij dit niet gelukt. Zal dit nogmaals opnieuw proberen volgende week. De keuze voor Android is de Android ID die ik zowel in Unti als de native Android App kan opvragen. Voor iOS is er iets totaal anders, vroeger was het mogelijk om de UDID op te vragen van het iOS device, maar Apple heeft dit geblokkeerd sinds iOS 5.0.Sinds iOS 6.0 is er een alternatief, de UUID. Er zijn 3 methoden om deze op te vragen, via de methode –identifierForVendor is het mogelijk om de UUID op te vragen. Deze ID is uniek bij apps van dezelfde developer, dus voor het bedrijf La Mosca moet dit dezelfde ID geven. Ik heb dit uitgetest en klopt, zelfs als men deze build vanaf een ander toestel dan krijgt men bij hetzelfde toestel steeds dezelfde ID.

Deze week was er ook iets totaal anders, La Mosca heeft een nieuw gamecenter voor zijn bedrijven gemaakt en dit wordt zondag om 21 uur online geplaatst. Dit gamecenter is gemaakt in ASP.NET. Bij deze nieuwe gamecenter zijn er ook nieuwe reservatiepagina’s voor de spellen die La Mosca maakt die moeten geimplementeerd worden in de huidige website van La Mosca. Alsook moet Google Analytics hiermee verbonden worden. Enkel en alleen deze reservatiepagina’s worden op een andere server gedraaid dan de website (NL-FR-BE) van La Mosca. Dit wordt opgelost door frames te gebruiken in de website van La Mosca om zo de reservatiepagina’s te tonen. Ik heb meegeholpen om enkele dingen klaar te zetten voor zondag, bijvoorbeeld de nieuwe Google Analytics code voor de frames in de header te plaatsen in de header.php van de WordPress site van La Mosca. Dit was eventjes zoeken omdat Google Analytics bezoekersgegevens moet opslaan van een website die niet afkomstig is van lamosca.be maar van een ander domein (de reservatiepagina’s). Ik zal zondagavond ook in het bedrijf aanwezig zijn om assistentie te verlenen om deze pagina’s succesvol online te krijgen.

Advertenties

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Google+ photo

Je reageert onder je Google+ account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

w

Verbinden met %s