>チュートリアル(Unity):ステージにコメントを残すこのサイトを正しく表示するためには、ブラウザーのJavaScriptの設定を「有効」にしてください。backendを使ってプレイヤーのコメントを保存・表示する機能を実装します。プレイヤーが敵の攻撃を受けてゲームオーバーになった際に、メニュー内の「Comment」ボタンを押すことで、ゲームオーバーになった「場所」にコメントを残せるようにします。他のプレイヤーがその「場所」に差し掛かると、かつてその場所で残されたコメントを表示します。backendを使えば、このような非同期的なコミュニケーションを実現することも可能です。ログイン機能を実装していない場合は、「ログイン機能を作る」を先に済ませておいてください。今回のチュートリアルで解説しているプロジェクトの完成版は以下のリンクからダウンロードできます。完成したプロジェクトをダウンロードWaveについて今回のサンプルゲームでは、敵が編隊を組んで登場します。この編隊のことを「Wave」といいます。このゲームでは、5種類のWaveが決まった順にループして現れます。今回のチュートリアルでは、ゲームオーバー時に「どのWaveで倒されたか」を記憶しておき、他のプレイヤーが当該Waveに差し掛かったときにコメントを表示するようにします。1つのWaveにコメントが複数ある場合は、その中から1つをランダムに選んで表示させます。シーンファイルとアセットファイルのダウンロード下記リンクからzipファイルをダウンロードします。ダウンロード解凍すると、以下の3つのファイルが出てきます。コメントを表示するゲームオブジェクトのプレハブこれら3つのファイルを、以下の手順に沿ってプロジェクトに導入してください。Comment.unityプロジェクトの「Scenes」フォルダにドラッグしてコピーしてください。Build」に追加(ドラッグ&ドロップ)してください。CommentGUI.prefabプロジェクトの「Prefabs」フォルダにドラッグしてコピーしてください。その後、Stageシーンを開き、ヒエラルキーパネルにCommentGUIプレハブをドラッグ&ドロップしてください。Comment.animプロジェクトの「Animations」フォルダにドラッグしてコピーしてください。その後、先ほどStageシーン内に作成したCommentGUIオブジェクトのAnimationコンポーネントに、Comment.animをアタッチします(下図参照)。コメントを投稿できるようにするそれでは、まずコメントを投稿してサーバーに保存できるようにしましょう。backendと通信してコメントの保存を行うクラスを作っていきます。Scriptsフォルダの中に「Comment.cs」という名前のC#スクリプトを新規作成し、下記の内容を記述してください。backendにデータを保存するときは、SaveAsyncメソッドを使います。フィールドを設定してからSaveAsyncを実行、という流れがデータストアの基本的な使い方です。Objectにアタッチしないで使いましょう。ゲームオブジェクトにアタッチせずに使う利点は、以下のようなものがあります。コードを書くことができる他のシーンでも、そのクラスを使うことができる今回実装したCommentクラスは、MVCデザインパターンでいうモデルクラスにあたります。その場合、このようにUnityに依存しない形でコードを書くほうがよいでしょう。実際このクラスは、Unityを使わずに単体テストを行うことができます。ゲームオーバーになったWaveを記憶するゲームオーバーになったときに、何番目のWaveを遊んでいたのかを記憶するようにします。ゲームオーバーになると、「Manager」クラスの「GameOver」メソッドが実行されます。Waveを管理しているのは「Emitter」クラスです。このクラスが「currentWave」というフィールドを持っているので、GameOverメソッドからEmitter.CurrentWaveを取得してローカルに保存するように実装しましょう。Emitter.csを開き、currentWaveをpublicにします。}次に、Manager.csを開き、GameOverメソッドを以下のように編集します。}これで、最後に遊んだWaveが保存できました。コメント入力画面を作るCommentシーンに「CommentInputManager」という名前で空のオブジェクトを作成し、同名のスクリプトを新規作成・アタッチしてください。その後、スクリプトを以下の内容に編集してください。}}ログイン画面や新規登録画面とほとんど同じ構成です。これで、コメント入力画面が完成しました。メインゲーム画面とコメント入力画面を切り替えるManager.csを開き、OnGUIメソッド内を以下のように編集してください。}これで、タイトル画面のボタン押下でコメント入力画面に遷移することができます。動作確認1ここまでできたら、1度動作確認をしてみましょう。以下のことが確認できるはずです。動作確認はLogInシーンを開いてから行ってください。backendの管理画面からコメントが確認できるコメントを表示するそれでは続いて、コメントを画面に表示する機能を実装していきましょう。先ほど作成したComment.csを開き、Commentクラスに以下のメソッドを追加します。}データストアに保存されているレコードを検索するときは、NCMBQueryクラスを使います。FindAsyncメソッドでレコードを取得、というのが基本的な流れになっています。条件の指定方法は、今回用いたWhereEqualTo以外にも色々なものが用意されています。詳しくはSDKリファレンスをご覧下さい。次に、Stageシーンに「CommentManager」という名前で空のオブジェクトを作成し、同名のスクリプトを新規作成・アタッチしてください。その後、スクリプトを以下の内容に編集してください。}}Waveの切り替わりを監視し、切り替わったときに先ほど定義したComment.fetchRandomlyメソッドを実行しています。これで、Waveの切り替わり時にコメントを取得・表示できるようになりました。動作確認2おつかれさまでした!これで、コメント機能の実装がすべて完了しました。LogInシーンを開いてゲームを実行し、コメントが表示されることを確かめましょう。事前にコメントを複数登録しておくと、コメントがランダムに表示されることを確かめられます。Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。TOPSNSFacebookTwitterQiitaGitHub富士通クラウドテクノロジーズホームへ特定商取引法に基づく表示ウェブサイトの利用について個人情報保護ポリシーについて。