Unity内でMySQLを使う

https://www.codedojo.com/?p=2132

上のサイトを参考にUnityでMySQLを直接使ってみました。英文なのでGoogle翻訳フル活用。英語読めるようになりたい。

まとめると、

C#用のMySQLドライバを、Unityにインポートすることの解説です。

最終的に成功したけど、よくわかんなかった……。

PHPとか使ってデータベースにアクセスする記事はあったけど、Unity内で直接使うのはあまり見なかったので書いてみます。

前提として、

  1. MySQLのデータベース自体は作成済み。
  2. C#のランタイムバージョンを4.xに。
  3. MySQLのDLL自体の詳細は公式のドキュメントとかで別途調べる。

ダウンロードと解凍

https://dev.mysql.com/downloads/connector/net/

このサイトからDLLをダウンロードします。

Select Operating Systemを.NET&MONOにします。で、ダウンロード開始。

手ごろな場所に解凍して、UnityのPluginsフォルダにドロップします。

複数のDLLファイルがありますが、これ以外はエラーが出て読み込めませんでした。

データベースを使うだけなら、MySQL.data.dllだけあれば使えるので良しとすることに。

もしMySQL.dataも使えなかったら古いバージョンのMySQLドライバをダウンロードしてみる。

で、MySQL.data.dllをインポートすると

みたいなエラーが出る。

これを解決するために、

自分のPCの、<Unityをダウンロードしたフォルダ>\Unity\Hub\Editor\2018.2.13f1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit

からSystem.Data.DllをPluginsフォルダに入れる。

こうすればとにかく使えました。

このSystem.Data.DLLがいろんなフォルダにあるんですが、unityjitフォルダ以下のやつじゃないとエラーになった……。

最終的にこんな感じのフォルダ構成になりました。

あとEdit➡ProjectSettings➡Player➡OtherSettingsから

ScriptingRuntimeVersionを4.xにしておく。

試しに使ってみる。

これでPHPとかを使わずにUnity内でMySQLを使えるようになりました。

しかし、.NETのバージョンも対応してると思うんだけど、どうしてMysql.data.entity.dllとかは使えないんだろう?