Jump to content
Unity Insider Forum
Kuxii

Mysql in Unity

Recommended Posts

Bin mal wieder etwas am Game Schaffen, Nun bin ich am Überlegen da das Spiel mehr Multiplayer ist eine Mysql Datenbank zu Verwenden (für AutoHäuser, Online Profile,Rennen usw.)

Bietet nun Unity eigentlich die Möglichkeit eine Mysql Datenbank zu Nutzen? Wenn ja wie?,

Json Files oder so sehe ich etwas bei mehr Betrieb unübersichtlich, deshalb die Frage.

 

Danke schon mal :)

Share this post


Link to post
Share on other sites

Möglich ist es, Tutotials gibt es über Google einige, kenne mich aber selbst damit noch nicht aus, bin auch gerade dabei mich da einzuarbeiten.

Wenn du was fertiges haben willst, schau mal hier: https://assetstore.unity.com/packages/tools/network/unity-mysql-accounts-system-25571

Vielleicht wäre das was. 

Alternativ: https://assetstore.unity.com/packages/tools/network/unet-server-mysql-and-clients-50114

 

 

 

Share this post


Link to post
Share on other sites

Die PHP MySql Variante sagt mir schon mal nicht zu da es mehrere Abfragen werden weiß nicht so Ganz :/

Ja auch schon Einiges Gelesen Von MySql Connectors bis xyz Aber nichts dabei was wirklich ging.

Share this post


Link to post
Share on other sites

Möglich ist das ja,

übrigens heißt das jetzt mysqli. Das ist die neue Version - wenn du deinen eigenen Server betreibst solltest du dies upgraden. Ansonsten sind die Funktionen alle ähnlich geblieben.

Was du brauchst ist eine Art Anfragenvorlage via WWW.

Du kannst mit der WWW Klasse das php dann ausführen (welches auf dem Webserver liegt) und dir die Ergebnisse dann zurück in Unity ausspucken lassen.Das Ganze sollte man aber vorsichtig betreiben. Da würde ich nach php salt oderetwas suchen also einen Verschlüsselungscode der individuell nur auf deinem Webserver sowie Unity liegt. Alle anderen Strings kannst du dann per WWW relativ einfach senden.


 

Das läuft dann in etwa so ab, dass du am Ende unbedingt noch einen hashcode senden sollst. Einfach gesagt ist es so:

Alle Eingaben in einem String und dazu noch den salt. Also "Username+Score+GewonnenAnzahl+GeheimesPasswort". Alles versteht sich als String natürlich. Dieses System ist allerdings sehr einfach gehalten und sollte wirklich nur für "unbedenkliche" Daten benutzt werden. Ich sag mal so - solang du keine Bankdaten usw senden willst ist das OK.

Dieser String wird dann z.B. per Md5 verschlüsselt und an das PHP ermittelt. Im Php muss dann dasselbe passieren. Also "Username+Score+GewonnenAnzahl+GeheimesPasswort" mit Md5 verschlüsseln und dann müssen beide Hashcodes verglichen werden um eine gewisse Sicherheit zu geben.


 

string HauptUrl ="https://meinedamoin.de/UpdatePlayer.php?"

hash=Md5.Md5Sum(Username + Score + GewonnenAnzahl + GeheimesPasswort);  

url = HauptUrl + "User" + Username + "&Score=" + Score + "&GewonnenAnzahl" + "&hash=" + hash;

Nun kannst du das ganze senden.

Und mit den verschiedenen Echos im PHP kannst du dir Ergebnisse anzeigen

 

 // Post the URL to the site and create a download object to get the result.
    Update_post = WWW(HauptUrl);
    yield Update_post; // Wait until the download is done
    if(Update_post.text) {
        print("PHP sendet folgendes zurueck " + Update_post.text);
    }

Falls du noch Fragen hast, kannst du dich auch gerne Privat melden :)

 

Share this post


Link to post
Share on other sites

hey, Ja alles eigene Server. Ämm ja ohne die PHP methode ist anscheinend nichts zu rütteln.Mir gefällt dies nicht so und hätte eher an eine Direkte Anbindung gedacht also gleich aus dem Game zu MySql^^Werde es einfach mal mit der PhP version versuchen. Nun habe ich Wochenende und die Zeit auch mal dazu^^

Share this post


Link to post
Share on other sites

Du kannst eine SQL-Datenbank auch "einfach" lokal als Unity Asset anlegen und dann Daten über C#-Klassen darin abspeichern. Ist dann aber eher sowas wie lokales Herunterschreiben und Lesen von Daten in  Binäry-Files mit "bequemen Zugriff". 

Share this post


Link to post
Share on other sites

sql war auch erst der gedanke, aber das problem wird dann sein sollte mal was nicht passen sich durch die Ganzen daten zu Wühlen, Mysql wäre eben Bequemer (PhPmyAdmin) und alles^^

Share this post


Link to post
Share on other sites
vor 25 Minuten schrieb Kuxii:

sql war auch erst der gedanke, aber das problem wird dann sein sollte mal was nicht passen sich durch die Ganzen daten zu Wühlen, Mysql wäre eben Bequemer (PhPmyAdmin) und alles^^

MySQL ist auch eine SQL-Datenbank ;)

Share this post


Link to post
Share on other sites

ja ich weiß, Aber zur verwaltung is es Blöd. Sql mag zwar einfach sein aber bin nicht der Fan davon. Habe Linux auf meinen Servern am Laufen so müsste ich jedesmal die SQL datenbank downloaden um Etwas zu Verändern wieder Uploaden und das ist mir zu Stressig

Share this post


Link to post
Share on other sites

Weil du geschrieben hattest:

Zitat

 Spiel mehr Multiplayer ist eine Mysql Datenbank zu Verwenden

Mit Mysql holst du die ja eine SQL-Datenbank ins Haus mit SQL-Queries und PHP-Skripten wenn du sie "remote" betreibst.

Du kannst deine Daten doch in Assets verpacken (siehe Streaming-Assets) oder Spielerdaten einfach als Binaryfiles aus einer Klasse "herunterschreiben" (serialisieren).

Share this post


Link to post
Share on other sites

Wenn es um Unity Server geht kannst ja sqlite nehmen und einfach neben dein Server speichern.

Oder einfach gleich Json Datei machen.

Share this post


Link to post
Share on other sites

Für Multiplayer den Unityclienten direkt mit zu MySQL zu verbinden ist das denkbar schlechteste Szenario. Du musst dabei die Zugangsdaten mit dem Spiel ausliefern, und die lassen sich sehr einfach aus dem Spiel extrahieren, und man erhält im Grunde freien Zugriff auf die Datenbank.

Am 5.2.2018 um 12:29 schrieb Lonely World:

übrigens heißt das jetzt mysqli. Das ist die neue Version - wenn du deinen eigenen Server betreibst solltest du dies upgraden. Ansonsten sind die Funktionen alle ähnlich geblieben.

mysqli ist eine PHP Erweiterung und hat mit MySQL selbst nichts zu tun. Ist in der Regel standardmäßig installiert.

Am 10.2.2018 um 00:21 schrieb Kuxii:

ja ich weiß, Aber zur verwaltung is es Blöd. Sql mag zwar einfach sein aber bin nicht der Fan davon. Habe Linux auf meinen Servern am Laufen so müsste ich jedesmal die SQL datenbank downloaden um Etwas zu Verändern wieder Uploaden und das ist mir zu Stressig

Ich bin Hauptberuflich Web-Programmierer und arbeite täglich mit MySQL/MariaDB Datenbanken, und habe noch nie müssen eine Datenbank zum ändern herunterladen um darin was zu ändern. Es gibt auch Tools wie HeidiSQL (Windows) oder Sequel Pro (Mac).
Wenn du sqlite meinst, das eignet sich sowieso nicht besonders für eine Serverdatenbank, da z.B mehrerer PHP-Prozesse nicht gleichzeitig auf die selbe Datenbankdatei schreiben zugreifen können.
SQL Ist eine Datenbanksprache für die Kommunikation mit der Datenbank, und wird für relationalen Datenbanken benutzt, jede Datenbank benutzt dabei seine eigenes SQL-Dialekt.

 

Share this post


Link to post
Share on other sites

Ich halte es für sinnvoll mit einem selbstgeschriebene TCP Client und Server zu arbeiten. Das ganze ist von der Umsetzung weniger Herausforderung sonder lediglich Massen arbeit. Das hätte den Vorteil einen weiteren Server dazu zu schalten, wenn einer voll oder down ist.

 

Kentnisse in C oder C++ sind erforderlich. Alternative jedoch auch Java.

 

Rynbef~

Share this post


Link to post
Share on other sites

Das kommt auch ganz auf dem Anwendungsfall drauf an, für simples Highscore abspeichern ist PHP oder auch z.B. ASP.NET core viel besser geeignet und man hat sehr schnell was funktionsfähiges am Laufen. 

Share this post


Link to post
Share on other sites
vor 21 Stunden schrieb Rynbef:

Ich halte es für sinnvoll mit einem selbstgeschriebene TCP Client und Server zu arbeiten. Das ganze ist von der Umsetzung weniger Herausforderung sonder lediglich Massen arbeit. Das hätte den Vorteil einen weiteren Server dazu zu schalten, wenn einer voll oder down ist.

 

Kentnisse in C oder C++ sind erforderlich. Alternative jedoch auch Java.

 

Rynbef~

errwhat.png

  • Haha 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...