質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

8906閲覧

unityでログイン機能の作成

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

3クリップ

投稿2016/08/26 05:55

編集2016/08/28 09:50

Unityでシステムを開発しています。
現在、ログイン機能をつけようと考え、多々のサイトを参考にやってきましたが、どうしても実現できなく、行き詰ってしまいました。

進捗としては、Unityでログイン画面を作りました。画面にはユーザ名とパスワードを入力する
InputFieldとログインボタンを用意しました。
ユーザ名とパスワードを入力後、ログインボタンを押すと、InputFieldに入力された値と、あらかじめMySQLに登録したユーザデータが一致していれば、次のシーンに移行する機能を作りたいと考えています。

作るうえで分からないことは、InputFieldに入力した値をMySQLにあるユーザデータとどのように照合するのかということです。

初めての利用、質問であるため、拙い文章ですみません…
まだUnityやMySQLは使い始めたばかりの初心者なので、至らない点ばかりですが、お力をお借りできないでしょうか。
よろしくお願いします。

後日、sakura_hanaさんからの回答を参考に挑戦してみましたが、Unityから送ったデータとMySQLに登録したデータとの照合を終えた後の処理で行き詰ってしまいました。そこまでのソースを以下に示しますので、間違い等あれば、ご教授お願いできないでしょうか。

1.Unity:InputFieldに入力した値をPHPにPOSTする

C#

1using UnityEngine; 2using System.Collections; 3using UnityEngine.UI; 4 5public class SubmitManager : MonoBehaviour 6{ 7 string str1; 8 string str2; 9 public InputField inputField1; 10 public InputField inputField2; 11 12 public void OnClickButton() 13 { 14 StartCoroutine(Connect()); 15 } 16 private IEnumerator Connect() 17 { 18 string url = "http://localhost/unity/unity_text.php"; 19 str1 = inputField1.text;//入力されたユーザ名を格納 20 str2 = inputField2.text;//入力されたパスワードを格納 21 WWWForm form = new WWWForm(); 22 form.AddField("Text1", str1); 23 form.AddField("Text2", str2); 24 WWW www = new WWW(url, form); 25 yield return www; 26 27 if (www.error == null) 28 { 29 Debug.Log("WWW Submit Ok!: " + www.text); 30 } 31 else 32 { 33 Debug.Log("WWW Submit Error: " + www.error); 34 } 35 36 } 37}

2.PHP:POSTされたデータを元にデータベースを照合する

PHP

1<?php 2// 接続情報 3$servername = "localhost"; 4$username = "root"; 5$password = "hogehoge"; 6$dbname = "example"; 7// インプット値 8$i_name = (string)filter_input(INPUT_POST, 'Text1'); 9$i_pass = (string)filter_input(INPUT_POST, 'Text2'); 10 11try { 12 // DB接続 13 $pdo = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password); 14 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 15 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 16 // SQL発行 17 $stmt = $pdo->prepare("SELECT * FROM userdata WHERE name = ? AND password = ?"); 18 $stmt->bindValue(1, $i_name); 19 $stmt->bindValue(2, $i_pass); 20 $stmt->execute(); 21 // 結果の取得 22 if($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 23 echo $row['name'] . " collation is complete!"; 24 }else{ 25 echo "no user or no password"; 26 } 27} 28catch(PDOException $e) { 29 echo "Connection failed: " . $e->getMessage(); 30} 31// DB切断 32$pdo = null; 33?>

ここまでのコードにより、UnityのInputFieldに入力した値がMySQLのデータと照合して、合っていたらUnityのログに、WWW Submit Ok!: (ユーザ名) collation complete!表示されます。

ユーザ名とパスワードが照合できた場合、Unityでは次の画面に遷移し、できなった場合は画面の遷移をしないという処理を行いたいのですが、どのようなソースコードを書けばいいのかわかりません。
(参考サイトをみると、JSONで値を返すという記事を見つけたので、JSON形式で値を返す場合は、MINIJsonを用いようかと考えています。)

説明が分かりづらく、すみません…
ご協力お願いできないでしょうか。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

直接接続するアセットがこちら(Unity5系で動くかは未検証)。
UnityでMySQLを使用する

一般的なPHPを利用したやり方がこちらです。
UnityとMySQLの連携

PHP(もしくはその他のサーバーサイドプログラム)を使用した方法でのフローを簡単に言えば、
1.Unity:InputFieldに入力した値をPHPにPOSTする(「Unty WWW」「Unity WWWForm」などで検索)
2.PHP:POSTされたデータを元にデータベースを照合する(「PHP ログイン」などで検索)
※セキュリティ面を考慮する必要があるのでフレームワークの利用も検討するとよいかと。
3.PHP:照合したデータを返す(「PHP echo」などで検索)
4.Unity:返されたデータを元に何か処理を行う(画面遷移する、ダイアログを出すなど)
このような形となります。ご参考になれば幸いです。

投稿2016/08/26 09:20

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/26 13:02

ご回答ありがとうございます。 PHPを使用してMySQLと通信を行う予定です。 この場合のフローを大変分かりやすく教えていただき、ありがとうございます。 まずは、PHPにPOSTするための、InputFieldに入力されたデータをどのように取得するのかを調べてみることにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問