④ 【Unity × Rails】バックエンドの実装と管理
オブジェクト作成・受信・削除等の操作は、バックエンドで管理されます。ここでは、Railsで作成したバックエンドの実装内容を説明します。
GitHubはこちらから
https://github.com/takehiro-A-2/ARableServer7.0
オブジェクト送信
AR空間にオブジェクトを設置する時、オブジェクト情報がバックエンドに送信され、インデックス番号を付与されて保存されます。
オブジェクト送信におけるPost通信のコード(Unity) ↓
オブジェクト送信におけるPost通信のコード(Rails) ↓
オブジェクト受信
オブジェクト受信時には、フロントエンド側でGet通信を行います。
最初に、バックエンドに保存されたオブジェクト数(インデックス)を確認します。その後、オブジェクト数だけ繰り返し処理を行って情報を受信し、オブジェクトをAR空間に出現させます。
フロントエンド側でこの処理を、1.5秒ごとに行います。1.5秒程度ではフロントエンドとバックエンドの負担、およびコミュニケーションのリアルタイム性においては、特に問題ないと確認しています。
オブジェクト受信におけるPost通信のコード(Unity) ↓
オブジェクト受信におけるPost通信のコード(Rails) ↓
フロントエンドでのオブジェクト削除
「削除モード」では、オブジェクトをタップすると、Destroy()メゾットが実行され、AR空間からオブジェクトが削除されます。しかしこれだけではオブジェクト情報はバックエンドに残ったままです。Destoroy()メゾット実行後、オブジェクト自身が持つ情報をバックエンドにPostします。この時に送信される情報は'オブジェクト固有id'と'アカウントid'になります。バックエンドに保存された'アカウントid'とPostされた'アカウントid'が一致した場合、バックエンドからオブジェクト情報が消去されます。これにより、他者のオブジェクトを削除することを防ぎます。
オブジェクト削除におけるPost通信のコード(Unity) ↓
オブジェクト削除におけるPost通信のコード(Rails) ↓
バックエンドの管理
バックエンドに保存された情報は、Webブラウザで管理します。
以下の図はメインページになります。オブジェクトの投稿日時、作成者ID、テキスト内容、画像、位置座標が一目瞭然です。もし不適切な内容を確認したら、右端の削除ボタンで削除可能です。またページ上部には、全オブジェクトを削除するボタンを備えております。
管理ページ ↓