Jump to content
Unity Insider Forum

Mysql in Unity


Kuxii

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 :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :)

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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).

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 month later...
  • 3 weeks later...

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.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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~

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...