
マイケル
みなさんこんにちは!
マイケルです!!
マイケルです!!

エレキベア
クマ〜〜〜〜!!

マイケル
Laravelも勉強したことだし、
ソシャゲ開発の続きを進めるぞーー!!
ソシャゲ開発の続きを進めるぞーー!!

エレキベア
そういえばソシャゲの環境構築をやっていたクマね

マイケル
その通り!
今回は UnityとLaravelを連携させたユーザ登録処理 を実装していくぞ!
今回は UnityとLaravelを連携させたユーザ登録処理 を実装していくぞ!

エレキベア
これは楽しみクマ
参考書籍

マイケル
前回に引き続き、こちらの参考書を参考に進めていきます!

エレキベア
書いてある内容がなかなか難しいクマね

マイケル
俺もLaravel勉強してやっと内容がわかってきたところだよ・・・。
実装イメージ

マイケル
実装イメージはこんな感じだ!
① クライアントからサーバへユーザ登録リクエストを送る。
② サーバ側のDB登録を実施する。
③ サーバからクライアントへ登録結果レスポンスを送る。
④ クライアント側のDB登録を実施する。

エレキベア
サーバ側もクライアント側も登録するクマね

マイケル
使うたびにDBアクセスするわけにもいかないから
ローカルにも保存しておくわけだね
ローカルにも保存しておくわけだね

マイケル
実際に動かしてみるとこのようになります!
↑登録するユーザ名を入力して登録する。
↑登録完了後、ユーザ名が表示される。
↑MySQL登録結果
↑SQLite登録結果

マイケル
画面の動きは少ないけど、サーバ・クライアント共に
DB登録できる状態です!
ここまでできるように実装していきましょう!
DB登録できる状態です!
ここまでできるように実装していきましょう!

エレキベア
新たな扉クマ〜〜〜〜〜
テーブルの作成

マイケル
まずはサーバ側のテーブルを作成しましょう!
テーブル作成の細かい手順は過去の記事で紹介しているのでご参考ください!
テーブル作成の細かい手順は過去の記事で紹介しているのでご参考ください!

エレキベア
なつかしクマ〜〜〜〜

マイケル
今回はユーザを登録するための UserProfile テーブルを作成します!
↑マイグレーションファイルの作成

マイケル
ファイルを作成したらマイグレーションを実行しましょう!

マイケル
これでテーブルが作成されました!
ついでに後々使用する、モデルファイルも作成しておきましょう!
ついでに後々使用する、モデルファイルも作成しておきましょう!

エレキベア
準備完了クマ〜〜〜〜〜
クライアント側の実装

マイケル
テーブルを作成したら、クライアント側の実装に入りましょう!
下記の部分になります!
下記の部分になります!

エレキベア
サーバにリクエストを送る処理と
サーバからレスポンスを受け取ってSQLiteに保存する処理クマね
サーバからレスポンスを受け取ってSQLiteに保存する処理クマね

マイケル
その通り!
画面はシンプルに下記のような感じです!
画面はシンプルに下記のような感じです!

マイケル
① 入力フォームにユーザ名を入力して決定ボタン押下
② 入力した名前でユーザ情報を登録してスタートボタンとユーザ名を表示
の流れになります!

エレキベア
(このゲームはなんなんだクマ・・・。)
SQLiteUnityKitのインポート

マイケル
それではまずはUnityでSQLiteが使えるように
SQLiteUnityKitをインポートしましょう!
SQLiteUnityKitをインポートしましょう!

マイケル
僕は下記サイトを参考にしながら導入しました!
参考サイト:
UnityでSQLiteを扱う方法
① SQLiteUnityKitをクローンする

マイケル
導入は以上で完了です!!

エレキベア
簡単2ステップクマ〜〜〜〜
SQLiteのテーブル作成処理

マイケル
SQLiteのアクセス方法は、以下のようになります!
下記のようにUserProfileテーブルのクラスを作成しましょう!
下記のようにUserProfileテーブルのクラスを作成しましょう!

マイケル
それぞれ、
CreateTable()メソッド → テーブル作成処理
Set()メソッド → レコード登録処理
Get()メソッド → レコード取得処理
の処理になっています。
CreateTable()メソッド → テーブル作成処理
Set()メソッド → レコード登録処理
Get()メソッド → レコード取得処理
の処理になっています。

エレキベア
他のDBと同じようにSQLを発行するクマね

マイケル
その通り!
ちなみにアクセスするファイル名などは、
下記のように定数クラスを作成して設定しています。
ちなみにアクセスするファイル名などは、
下記のように定数クラスを作成して設定しています。
↑定数クラス

マイケル
あとは今作成したテーブルクラスを呼び出す処理を記述します!
SceneのManagerクラスとして下記を作成しましょう!
SceneのManagerクラスとして下記を作成しましょう!

マイケル
DB処理に関連するのは下記部分です。
Awake()の中で
SQLiteのDBファイル作成とUserProfileテーブルの作成処理
を記述することで、ゲーム起動時に必ず作成するようにしています。
Awake()の中で
SQLiteのDBファイル作成とUserProfileテーブルの作成処理
を記述することで、ゲーム起動時に必ず作成するようにしています。

マイケル
また、Start()の中では
UserProfileテーブルのレコードが登録されているかどうか
をチェックして処理を分岐させています。
UserProfileテーブルのレコードが登録されているかどうか
をチェックして処理を分岐させています。
↑テーブル作成と取得処理

エレキベア
タイトル画面起動時にテーブルを作成すれば
漏れが無くなるわけクマね
漏れが無くなるわけクマね

マイケル
その通りだ!
そしてユーザ名を入力して決定ボタンを押下した時の処理は以下の部分!
入力チェックをした後、これから作成する「ConnectServer()」メソッドを呼び出しているよ!
そしてユーザ名を入力して決定ボタンを押下した時の処理は以下の部分!
入力チェックをした後、これから作成する「ConnectServer()」メソッドを呼び出しているよ!

エレキベア
ここからサーバにリクエストに送るクマね

マイケル
そういうことさ!
それじゃサーバとの連携クラスを作成していこう!
それじゃサーバとの連携クラスを作成していこう!
サーバとの連携処理

マイケル
サーバとの連携クラスは下記になります!

マイケル
「UnityWebRequest」クラスを上記のように使用することで、
リクエストを送ったりレスポンスを受け取ったりできるようになります!
リクエストを送ったりレスポンスを受け取ったりできるようになります!

マイケル
サーバ側でJSON形式で返すよう実装するので、
受け取り後、SQLiteへ保存しましょう!
受け取り後、SQLiteへ保存しましょう!

エレキベア
こうしてみると内容が分かってきたクマ〜〜〜

マイケル
以上でクライアント側の実装は完了です!
サーバ側の実装

マイケル
次はサーバ側の実装です!
下記の部分になります!
下記の部分になります!

エレキベア
クライアントから受け取ったリクエストからDB登録して
レスポンスを返す流れクマね
レスポンスを返す流れクマね

マイケル
サーバ側の処理は非常にシンプルです!
下記Controllerクラスを作成しましょう!
下記Controllerクラスを作成しましょう!

マイケル
リクエストを受け取ったら、
ユーザのユニークIDを生成してUserProfileテーブルへの登録処理後、
JSON形式で返却する 処理にしています!
ユーザのユニークIDを生成してUserProfileテーブルへの登録処理後、
JSON形式で返却する 処理にしています!

マイケル
ちなみに、こちらも config フォルダ内に下記のようなクラスを作成することで
定数として扱うことができます!
定数として扱うことができます!

エレキベア
なるほどクマ〜〜〜〜〜

マイケル
あとは下記のようにルーティングを設定すれば完了です!!
↑完成図

エレキベア
完成したクマ〜〜〜!!!
おわりに

マイケル
というわけで今回はユーザ登録処理の実装でした!
どうだったかな?
どうだったかな?

エレキベア
サーバとの連携と聞くと難しそうクマが
やってみると案外できてうれしかったクマ
やってみると案外できてうれしかったクマ

マイケル
今回は簡単な処理だったけど、
ここから少しずつレベルアップしていこうね!!
ここから少しずつレベルアップしていこうね!!

マイケル
それでは今日はこの辺で!
アデュー!!!
アデュー!!!

エレキベア
クマ〜〜〜〜〜〜〜
【Unity】ソーシャルゲームを作る 〜ユーザ登録処理の実装〜【AWS × Laravel】 〜完〜