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

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

プログラミング初心者におすすめのサービス
1. 教室で学びたい派なら

プログラマカレッジは20代限定で、無料で受講できて、修了後、就職支援もしてくれるプログラミングスクールです。最高過ぎですよ、これ!!企業からの協賛金によって運営されいているため無料で受講できるんだそうです。すばらしいシステムだと思います!

30代の方には

プログラマカレッジは20代限定なので30代の方にはゼロスクがおすすめです。35歳以下なら無料で受講できます。教室も札幌、仙台、東京、大阪、神戸、福岡と全国展開しているので地方の方でも利用できます。

2. 自宅で学びたい派なら

Udemyという動画講座がおすすめです。時々特別セールがあって驚くほどの低価格で受講できるので、是非チェックしてみてください。

3. つまづいた時に質問したくなったら

プログラマー専用の質問サイトteratailをおすすめします。 つまづいた時にteratrailで質問すれば教えてもらえます。

4. エンジニア未経験の人でも利用できる転職エージェント

ワークポートは未経験の人の転職活動も支援してくれますし、全国の求人を扱っているので地方在住の方にもご利用いただけます。お給料をもらいながら社内研修でプログラミングを学べる会社が狙い目です。

これらのサービスを活用すれば、全くの初心者からでもプログラミングをばっちり出来るようになると思います!レッツトライです!