今回はニフクラ mobile backend のサンプルプロジェクト「シューティングゲームにランキングとゴースト機能を追加」からスコアを登録するシーン SaveScore を改造します。
ニフクラ mobile backend は富士通クラウドテクノロジーズ株式会社が提供するスマートフォンアプリでよく利用される汎用的な機能をクラウドから提供するサービス。
ニフクラ mobile backend の公式サイトにはサービスの使用方法のドキュメントやサンプル、チュートリアルが用意されています。
Unity サンプル&チュートリアル一覧 ニフクラ mobile backend
Text (Script)コンポーネントの設定はこのように設定。
Text (Script)コンポーネントの設定はこのように設定。
Text (Script)コンポーネントはこのように設定。
Text (Script)コンポーネントの設定はこのように設定。
Text (Script)コンポーネントの設定はこのように設定。
Text (Script)コンポーネントはこのように設定。
Image (Script)コンポーネントをこのように設定。
Button (Script)コンポーネントをこのように設定。
Text (Script)コンポーネントをこのように設定。
ここまでの手順で一通り必要なUIオブジェクトができました。[Scene]ウィンドウで見るとこのようになっています。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// シーン管理処理のクラスを使用する宣言
using UnityEngine.SceneManagement;
// UI処理のクラスを使用する宣言
using UnityEngine.UI;
public class ScoreUI : MonoBehaviour
{
// スコア値を格納する変数
public int score;
// プレイヤー名のテキストコンポーネントを格納する変数
public Text inputFieldName;
// スコアのテキストコンポーネントを格納する変数
public Text textScore;
// ゲーム開始時の処理
void Start()
{
// ローカルに保存されたスコア値を取得して変数 score に格納;
score = PlayerPrefs.GetInt("Score", 1);
// スコア値をUIテキストコンポーネントのテキスト要素に格納
textScore.text = score.ToString();
}
// UIインプットフィールド入力後に実行される処理
public void EndEditField()
{
// プレイヤー名の文字列を name に格納
name = inputFieldName.text;
// スクリプト SaveScore の save() 処理を実行
//(name と score をサーバーに書き込む)
FindObjectOfType().save(name, score);
}
// UIボタンクリック時の処理
public void OnClick()
{
// シーン Stage をロード
SceneManager.LoadScene("LeaderBoard");
}
}
スクリプト ScoreUI を保存したら[Hierarchy]ウィンドウ > ScoreUI Manager を選択。
[Inspector]ウィンドウ > ScoreUI (Script)コンポーネントがこのようになっていることを確認します。
Input Field Name フィールドには [Hierarchy]ウィンドウ > Canvas > InputField name > Text を割り当てます。
Text Score フィールドには [Hierarchy]ウィンドウ > Canvas > Text score Value を割り当てます。
オブジェクト ScoreUI Manager にコンポーネント Save Score (Script) を追加してこのようになりました。
Objectフィールドに ScoreUI Manager を割り当て。関数リストは ScoreUI > EndEditField() を選択。
最後に、[Hierarchy]ウィンドウ > GUITextSaveScore と SaveScore は不要になったので削除します。
今回の内容をWebGLでビルドしてみました。サウンドはミュートしています。
画像クリックで再生(ファイルサイズ:約7MB)