2013-06-10 37 views
10

Ich habe gerade angefangen C# zu benutzen und weiß nicht viel darüber. Ich benutze die 3D-Engine namens Unity und versuche ein C# -Skript zu schreiben, um auf die MySQL-Datenbank zuzugreifen, die ich gerade benutze. Die MySQL-Datenbank befindet sich auf einem anderen Computer. Meine Frage ist, wie kann ich mit C# auf die MySQL-Datenbank zugreifen. Ich kenne den Benutzernamen, das Passwort und die Datenbank, die ich verwenden möchte, aber ich kann nicht herausfinden, wie man auf die Datenbank zugreift.Zugreifen auf die SQL-Datenbank mit C# on unity?

+1

Unity ist ein Spiel-Engine, nicht ein 3D-Modellierungsprogramm –

Antwort

1

Sie müssen den C# MySQL-Treiber erhalten: http://dev.mysql.com/downloads/connector/net/

Und dann werden Sie das MySQL-Handbuch für ihre Einrichtung und mit ihm folgen müssen. Es ist ein Standard-ADO.NET-Treiber, also sollten Sie in der Lage sein, den meisten C# SQL-Tutorials für zusätzliche Hilfe zu folgen.

0

Unity3D verwendet gestripptes Mono.net, das die Datenbank nicht direkt unterstützt. Sie können Ihre eigene DLL in C# .NET schreiben, die den Datenzugriff für Sie übernimmt. Dann add it in your Unity3D project.

Während Sie Ihre eigene DLL schreiben, stellen Sie sicher, wenn Sie diese DLL zu Ihrem Projekt bringen, kopieren Sie auch referenzierte DLL in den gleichen Ordner. Am besten wäre es, Mono.NET zu verwenden.

+0

ich mit dem Mono.Net nicht vertraut bin, die Sie sprechen. – Cody

+0

Versuchen Sie zu googeln. Wenn Sie am Unity3D-Framework arbeiten, müssen Sie sich mit .NET-Frameworks und dessen Verwendung vertraut machen. – Yogee

+1

Es ist wahr, dass Unity "Mono-lite" verwendet, aber es gibt [http://forum.unity3d.com/threads/9391-MS-SQL-connection] von [mit Mono-Assemblys] (http: // forum .unity3d.com/threads/11466-Datenbank-und-Spreadsheets lesen), um eine Verbindung zu einer SQL-Datenbank herzustellen. – Jerdak

0

Eine späte Antwort, aber vielleicht wird dies anderen helfen.

Ich kann tatsächlich auf meine Serverseite sql Datenbank auf meiner Nicht-Spiel Unity App zugreifen. In meinem Fall steuert meine App, ob die Seriennummer des Benutzers wahr ist oder nicht. Nachdem Benutzer ihren Serienschlüssel eingegeben haben, beginnt meine App mit dem Vergleich der Seriennummern in der SQL-Datenbank. Sie können diese Server Side Highscores Tutorial für Ihren Startpunkt verwenden. Ich tat das gleiche. Befolgen Sie diese Schritte, dann sollten Sie in der Lage sein, auf Ihre SQL-Datenbank in Unity zuzugreifen.

+0

Dies grenzt an "Link-only-Antwort" - es wird immer dringend empfohlen, den am besten geeigneten Ausschnitt/Textteil von verlinkten Ressourcen zu veröffentlichen, auch wenn nur Link-Verrottung zu verhindern. Vielleicht eine Bearbeitung? :) – bardzusny

1

Datenbank (SQLite)-Setup für Unity Erstellen neuer Ordner

  1. Erstellen neuer Ordner unter Assets Ordner es Plugins Umbenennen.

  2. Copy sqlite3.def und sqlite3.dll in Assets/Plugins in Ihrer Einheit Projekt können .Sie diese Dateien hier http://www.sqlite.org/download.html für Fenster (vorkompilierte Binaries für Windows)

  3. herunterladen SQLite Browser http://sourceforge.net/projects/sqlitebrowser/ oder http://sqliteadmin.orbmu2k.de/ herunterladen SQLite Administrator herunterladen Werkzeug
  4. Erstellen Sie Datenbank in Assets Ordner in Ihrem Unity-Projekt mit SQLite-Browser.
  5. Kopieren Sie System.Data.dll und Mono.Data.Sqlite.dll von ** C: \ Programme (x86) \ Unity \ Editor \ Data \ Mono \ lib \ mono \ 2.0 * und fügen Sie sie in Ihre Assets/Plugins * Ordner in Ihrem Unity-Projekt.
  6. Fügen Sie diese Namespaces mit Mono.Data.Sqlite hinzu; Verwenden von System.Data; Verwenden von System;
  7. Zeichenfolge conn = "URI = Datei:" + Application.dataPath + "/PickAndPlaceDatabase.s3db";

ersetzen PickAndPlaceDatabase.s3db mit Ihren Datenbanknamen

unter Assets Ordner umbenennen Plugins.

void Start() { 

      string conn = "URI=file:" + Application.dataPath + "/PickAndPlaceDatabase.s3db"; //Path to database. 
      IDbConnection dbconn; 
      dbconn = (IDbConnection) new SqliteConnection(conn); 
      dbconn.Open(); //Open connection to the database. 
      IDbCommand dbcmd = dbconn.CreateCommand(); 
      string sqlQuery = "SELECT value,name, randomSequence " + "FROM PlaceSequence"; 
      dbcmd.CommandText = sqlQuery; 
      IDataReader reader = dbcmd.ExecuteReader(); 
      while (reader.Read()) 
      { 
       int value = reader.GetInt32(0); 
       string name = reader.GetString(1); 
       int rand = reader.GetInt32(2); 

       Debug.Log("value= "+value+" name ="+name+" random ="+ rand); 
      } 
      reader.Close(); 
      reader = null; 
      dbcmd.Dispose(); 
      dbcmd = null; 
      dbconn.Close(); 
      dbconn = null; 
     } 

enter image description here enter image description here

diese ist nützlich Link:

Weitere SQLite Hilfe Besuch: http://www.tutorialspoint.com/sqlite/

http://wiki.unity3d.com/index.php/Webservices_In_Unity enter image description here dann sollten Sie diese Bibliothek in C# -Code hinzu:

using AssemblyCSharp.portal.wwwww.com; 

jetzt können Sie es verwenden:

using UnityEngine; 
using System.Collections; 
using AssemblyCSharp.portal.wwwww.com; 

public class Game5_Player : MonoBehaviour 
{ 
    public string Logo; 
    void Start() 
    { 
     crm1 s = new crm1(); 
     Logo= s.getCompanyLogo(); 
    } 
} 
+0

Der Benutzer hat ausdrücklich gesagt, dass er MySQL verwenden möchte und kein anderes RDMS verwenden möchte. Ich würde für zukünftige Beiträge vorschlagen, zu überprüfen, was der Benutzer tatsächlich tun möchte, anstatt anzunehmen, dass Sie wissen, was das Beste für sie ist. – Trey50Daniel

Verwandte Themen