
今日は、Unity3D上のプロジェクトをMySQLデータベースに接続する方法を見つけます。
より正確には、ゲームオブジェクトの状態をデータベースに保存し、データベースからロードする方法を分析します。 この
ガイドは 、
Jonathan WoodのUnity 3.0.0f5およびMySQL 5.2.28に基づいています。 Unityの4番目のバージョンに合わせて補完および適合されています。
必要なもの:
1. Unity3D4.x。
2. MySQLデータベースへのアクセス。
3.ライブラリMySql.Data.dll。
プロジェクトフォルダに、MySQL.Data.dllライブラリを配置する必要があるライブラリディレクトリを作成する必要があります。 この
アーカイブからダウンロードできますが、MySQLが既にインストールされている場合は、c:\ Program Files(x86)\ MySQL \ MySQL Connector Net 6.0.3 \ Assemblies \からコピーできます。

アセンブリバージョンの互換性の問題を回避し、数時間と神経を節約するため(
Joelのおかげ)、互換性APIレベルを
編集->プロジェクト設定->プレーヤー->最適化-> Api互換性レベル= .NET 2.0に設定します。
予備作業:

1.保存する必要のあるオブジェクトには、「保存可能」タグが付いています。

2.オブジェクトに関する情報を保存するテーブルをデータベースに作成します。
新しいライブラリを使用するには、スクリプトの先頭に追加します。
using MySql.Data; using MySql.Data.MySqlClient;
また、接続パラメーターを変数に書き込むことを忘れないでください。
オブジェクトに関する情報が保存される構造を作成します。
起動時に、スクリプトはデータベースに接続し、オフにすると切断されます。
void Awake() { try {
ステージ上のオブジェクトの操作を担当する2つの手順があります。
prepDate-データベースに書き込むためのデータを準備します loadDate-シーンにオブジェクトをロードします また、データベースの操作を担当する4つの主要な手順:
InsertEntries-テーブルに新しいレコードを挿入します。 UpdateEntries-テーブル内の既存のレコードを更新します。 DeleteEntries-テーブルからレコードを削除します。 ReadEntries-テーブルからすべてのレコードを読み取ります。 あとは、シーンをロードおよび保存するためのボタンを2つ作成するだけです。
それは基本的にそれです。 コメントやコメントを歓迎します。
スクリプト全体 using UnityEngine; using MySql.Data; using MySql.Data.MySqlClient; using System.IO; using System.Collections; using System.Collections.Generic; public class MySQLCS : MonoBehaviour { public GameObject mCUBE; public GameObject mSPHERE; public GameObject mTRIANGLE; bool saving = false; bool loading = false;