シヴァのブログ

UnityやUE4や趣味とかいろいろ...

「Unity」 経営ゲーム開発 Part2

前から、

ネットをつなぐようなゲームを開発したいと思っていました。

んで、

今回は、ネットに関連したデータベースについての内容です。

 

 ネットをつなぐようなゲームを開発したいんですが、

 

データベースの「デ」も知らない。

PHPって何?

PDO、MySQLPostgreSQLSQLite…知らない子ですね。

 

…っと、

酷い状態でして、今まで手が付けられませんでした。

なんとかしたいと思い、勉強した結果、

2週間ほどたってやっと、

Unityのボタンを押すことによって、PHPを連携しつつ、

データベースに文字を挿入することができました。

 

簡単に、ソースコードを載せます。

[注意]※の中には、各自の合ったものを入れて下さい。

すみませんが、

何かあると困るので※マークで伏せさせていただきます。

 

 

JavaScriptファイルです。

また、最後の print("Finished script"); は、

最後までスクリプトが通ったかをコンソールで確認する用です。

[unity_php_db.js]

***************************************************************************

#pragma strict
//unity⇒PHP⇒DBのテーブルにデータを書き込む処理

function Start(){}
function Update(){}

function Click(){
    var url = "※※※※※";//※は、phpファイルの置き場所
    var wwwForm:WWWForm = new WWWForm();
    var name="testName";
    var season="2";
    var wincount="3";
    var losecount = "4";
    var rank = "5";
    wwwForm.AddField("name", name);
    wwwForm.AddField("season", season);
    wwwForm.AddField("wincount", wincount);
    wwwForm.AddField("losecount", losecount);
    wwwForm.AddField("rank", rank);
    var req : WWW = new WWW(url,wwwForm);
    yield req;
     if (req.error != null)
            print(req.error);
        else
            print("Finished script");
}

***************************************************************************

 

このPHPファイルは、PDOを用いたMySQLを使用してます。

[php_db.php]

***************************************************************************

<?php
$dsn = "mysql:host=※※※※※;dbname=※※※※※";

//※は、データベース サーバデータベース名
$user = "※※※※※";

//※は、ユーザー名
$password = "※※※※※";

//※は、パスワード

$name = $_POST["name"];
$season = $_POST["season"];
$wincount = $_POST["wincount"];
$losecount = $_POST["losecount"];
$rank = $_POST["rank"];

//データベースに接続する
try{
    $dbh = new PDO($dsn, $user,$password);
}catch(PDOException $e){
    exit("データベースに接続できませんでした。" . $e->getMessage());
}

//文字コードを指定
$stmt = $dbh->query("SET NAMES utf8");

//エラーが発生した際にエラーメッセージを表示
if (!$stmt) {
  $info = $dbh->errorInfo();

  exit($info[2]);
}
//SQL
$sql = "insert into ※※※※※(name, season, wincount, losecount, rank)values(?, ?, ?, ?, ?)";//※は、テーブル名
//文を実行する準備を行い、文オブジェクトを返す
$stmt = $dbh -> prepare($sql);
//SQLを実行する
$stmt -> execute(array($name, $season, $wincount, $losecount, $rank));

//データベースとの接続を切断する
$dbh = null;

?>
***************************************************************************

 

以下の画像は、

Unity内のボタンを押す前と押した後のデータベースのテーブルです。

[user_tblの中身]

***************************************************************************

[Before]

f:id:shivaT:20131213220959p:plain

[After]

f:id:shivaT:20131213221007p:plain

***************************************************************************

 

はい。

こんな感じです。

idが7のやつは、もともと入れといたものです。

7からいきなり15に飛んでいるのは、何度も試していたからです。

 

 

うん。

0の知識の状態から、1から何かを学ぶことは大変でした。

分かってきて、出来ると楽しいですが、

この2週間で一気に老けた気分です。

まぁ、

そんなこんなでやっと1歩前進という感じです。

まだまだ、続きます。