UnityでGame centerを使う

nguiicon-comparison9.png

□サイト内検索


スポンサードリンク

Icon comparison9

Game CenterはiOSの機能でゲームのスコアを共有し、他のユーザとランキングを競うLeaderboard、
アプリ使用時の目標を達成していくAchievement(達成項目)が利用できる。

UnityでGame centerを使う

  1. DeveloperサイトでアプリIDを作成
  2. iTunes Connectでアプリの設定をする。
    説明・アイコンは仮で入れておく。
  3. iTunes Conncetのアプリ詳細画面から
    Manage Game Centerを選択

    ITunes Connect

  4. 単一ゲーム > シングルゲーム向けに有効化 を選択
  5. Leaderboard、Achievement(達成項目)を追加していく。

Leaderboard

  1. Leaderboardから追加
    「Leaderboardの追加」を押す。
    ITunes Connect2

  2. 単体Leaderboardの「選択する」を押す

    ITunes Connect3

    Leaderboardの参照名:iTunes Connect内でLeaderboardを検索する場合に使用する名前。
    Leaderboard ID:識別子。変更不可。また、プログラム上で使用するので覚えておく。
    ※「com.gclue.アプリ名.リーダボード名」など、統一させた方が良いかもしれない。
    スコアのフォーマットタイプ:このアプリケーションのスコアをLeaderboardで表示する形式 (整数、経過時間、金額など) を選択する。
    並べ替えの順番:Leaderboardのスコア表示の昇順降順。
    スコアの範囲 (任意):スコア表示のレンジ。

    Leader BoardとAchievementの作成 – iOS Docsより引用

    Leaderboardのローカリゼーション

    Leaderboardの言語対応

    「Add Language」でローカリゼーションする言語を追加
    最低一言語入力しなければならない。
    言語:表示言語を選択。
    名前: GameCenterで表示される名前
    スコアのフォーマット:表示スコアの書式
    スコアのフォーマットサフィックス:表示スコアの末尾(複数形の場合)
    Image:リーダーボードの画像

Achievement(達成項目)

  1. ITunes Connect6

    達成項目も参照名:内部名。iTunes Connect内でアチーブメントを検索する場合に使用する名前
    達成項目 ID:識別子。変更不可。この達成項目に対して作成するアルファベットの固有IDです。ピリオド(.)や下線(_)を含めることができる。

    点数:達成項目で得られる得点です。達成項目ごとに最高100点、すべての達成項目を合わせて最高1000点まで獲得できる。

    非表示:非表示としてマークされている達成項目は、プレイヤーが達成するまでGame Centerで非表示になる。
    複数回達成可能:「はい」を選択すると、ユーザーはすでに達成した達成項目に対するGame Centerのチャレンジを受け入れることができる。

    達成項目のローカリゼーション

    • 言語:選択言語
    • タイトル:表示させるタイトル
    • 達成前に表示する説明:達成前にアチーブメントのリストで表示させる説明文言
    • 達成後に表示する説明;達成後にアチーブメントのリストで表示させる説明文言
    • 画像:512×512ピクセル、72DPI以上、RGBカラースペースの、.jpeg、.jpg、.tif、.tiff、または.pngファイル
      Achievementが100%になったとき表示される画像

テストユーザーの作成

ゲームセンターのテストユーザーをつくる。

  1. itunes Connectトップページから「Manage Users」を選択
    ITunes Connect7

  2. テストユーザーを選択
    ITunes Connect8

  3. You have not added any users. Click Add New User to get started.が表示されたら
    左上の「Add New User」を選択

    ITunes Connect9

  4. ユーザーのデータを入れる
    パスワードの答えは6文字以上35文字以下、
    パスワードには大文字、数値を1文字以上入れる

  5. ユーザー作成後、登録したメールアドレスにメールが届く。
    メール内のリンクからユーザー認証。

実装

スクリプトを保存してゲームオブジェクトへコンポーネントとしてつける。
Game centerを呼び出すボタンからSocial.ShowLeaderboardUI()を呼び出す。
Social.ShowLeaderboardUI()でLeaderboardとアチーブメントの両方を表示できる。

□コード参照
UnityでiOSのGameCenterを利用するためのサンプルコード – Qiita

// リーダーボードを表示する
	public static void ShowLeaderboardUI()
	{
		Social.ShowLeaderboardUI();
	}
	
	// リーダーボードにスコアを送信する
	public static void ReportScore (int score)
	{
		//このIDは任意の登録したものを使う
		string leaderboardID = "leaderboardid";
		
		Debug.Log ("スコア " + score + " を次の Leaderboard に報告します。" + leaderboardID);
		
		Social.ReportScore (score, leaderboardID, success => {
			
			Debug.Log(success ? "スコア報告は成功しました" : "スコア報告は失敗しました");
		});
	}
	// Achivementにスコアを送信する
	//呼び出し例:RankingUtility.ReportachievementScore("normal");
	//
	public static void ReportachievementScore (string achievementID)
	{
		//このIDは任意の登録したものを使う
		//string achievementID = "normal";
		
		Debug.Log ("アチーブメント" + achievementID + " を送信します。");

		Social.ReportProgress(achievementID,100.0,success => {

			Debug.Log(success ? "アチーブメント報告は成功しました" : "アチーブメント報告は失敗しました");
		});
	}
  1. テストはiPhone実機を使う
  2. ビルドしてXcodeへ
    ・GameKit.frameworkをフレームワークに追加されていることを確認後、
    実機テスト。

  3. ゲームセンターのアプリを開き、
    テストユーザーのメールアドレスでログインする。
  4. 再度テストアプリを開き、起動時にゲームセンターのウィンドウが開くか確認。

  5. 動作チェックをしてリクエストを送る処理をいれた場所で
    送信されGamecenterに記録されるかを確認。

    □チェック項目
    ・作成したバンドルIDをUnityプロジェクトに反映し忘れないようにすること!!←これでハマった。
    ・iTunes ConnectでGame CenterをEnableにしているか
    ・サンドボックス用のアカウントを使用しているか

ゲームセンターのデータを削除する方法

  1. Game centerのアプリを起動。
  2. ゲームの風船をタップ、もしくは下の「ゲーム」タブをタップ。
    ゲーム名が表示されないときはキャッシュの可能性あり。ゲームセンターのアプリを再起動。
    Th 3317

  3. 消したいデータのテーブルをスワイプして「削除」ボタンを表示
    Th 3318

  4. アラートが表示。
    「削除」のボタンをタップでデータ削除
    Th 3319

Achievement達成時に通知センターの動作がうまくいかないのは
なんでだろう。

□参照URL
Leader BoardとAchievementの作成 – iOS Docs
Gamecenter概説


スポンサードリンク

このサイトが役に立ったらシェアにご協力ください

  • このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です