ホームお問い合わせプロフィール未経験→就職転職合格率年収の相場ブラック企業判別定時帰りする方法

UnityとRailsの連携方法、WWWクラスでかんたんに実現

に投稿 技術 アフィリエイトリンクを含みます

Unityのロゴ

やまろうさんのブログで紹介されている「パックマン風ゲーム」の技術の詳細が知りたいです。

私は現在、Unityでゲームを作ってアップストアにリリースしているのですが、ログインや点数の管理機能をRuby On Railsで実装できないか、検討しています。

Railsはまだ、勉強し始めた段階でScaffoldで簡単なウェブアプリが作れる程度です。データベースはsqlite3がインストールされてます。Unity, Rails共々、実装方法がわかりません。

UnityもRailsも本を何冊か購入して勉強したのですが、肝心のUnityとRailsをどうやって連携させるのか、さっぱりわからないのです。

ブログで紹介されているコードをUnityとRailsのどの部分に挿入すればいいのかだけでも教えていただければ助かります。

RailsはContorollerファイルへの追記だけでいいのでしょうか?Unityに特殊なUnityEngineが必要なのではないでしょうか?
他、特別なことがあれば教えてください。

読者の方から相談メールをいただきました。

同じような悩みを持っている方向けに回答内容を一部紹介します。

紹介されてるコードをどの部分に挿入するか

Unityコードの解説

私が作ったパックマン風ゲームクエリちゃんドットイーターの場合、

Dotというタグがついたオブジェクトが0になった時がゲームクリアです。それを検出して、クリア画面を表示します。

public class GameManager : MonoBehaviour {
 void Update () {

  if (GameObject.FindGameObjectsWithTag("Dot").Length == 0) {
   Application.LoadLevel("Win");
  }
 }
}

クリア画面のStartイベントでWebAPIをコールします。

public class EndManager : MonoBehaviour {
 IEnumerator Start () {
  var url = "http://xxxx.com/dot/api/save.json?name="
   + SceneChanger.userName + "&time="+ GameManager.elapsedTime;
  WWW www = new WWW(url);
  yield return www;
  JSONObject json = new JSONObject(www.text);

  rank= ""+ json.GetField("rank").n;
  msg1.text = "あなた(" + SceneChanger.userName + ")の";
  msg3.text = "タイム " + GameManager.elapsedTime + "秒は";
  msg2.text = rank + "位です!";
 }
}

Railsコードの解説

ruby on railsはcontorollerファイルへの追記だけでいいのでしょうか?

rails側は、Controllerクラスにapi_saveを追記して
config.rbでURLをマッピングします。このURLをUnity側でコールするのがポイントです。

Dot::Application.routes.draw do
  get 'dot/api/save' => 'dot#api_save'
  post 'dot/api/save' => 'dot#api_save'
end

特殊なUnityEngine?

Unityに特殊なUnityEngineが必要なのではないでしょうか?
他、特別なことがあれば教えてください。

RailsからのレスポンスのJSONをパースするためにJSONObjectというライブラリを使っています。

Unity JSONObject

で検索すれば、かんたんに見つかるはずです。