К основному контенту

Unity3D 3.5 Native GameCenter Example

В процессе подготовки новой игры и интеграции GameCenter в нее попробовал родные для Unity3d (Начиная с версии 3.5) методы. Не то чтобы я раньше этого не пробовал, но раньше и сроки поджимали и нервы не давали. Ранее я использовал исключительно плагин для Юнити Prime31 GameCenter. Теперь я знаю что данный скрипт 100% рабочий.

Опишу несколько подводных камней:
  1. В плагине от Prime31 можно вызвать для показа таблицу лидеров путем передачи ее id в нативном API это сделать нельзя - только default, методом Social.ShowLeaderboardUI()
  2. ShowDefaultAchievementCompletionBanner Показывает окошко, которое выпадает при том если пользователь заработал ачивмент, требует 5.0 версии ОС на устройстве, для этого и подлючаем using UnityEngine.SocialPlatforms.GameCenter;
  3. Конечно чтобы все это работало нужно предварительно заполнить поля в консоли разработчика по поводу таблиц и ачивментов GameCenter, активировать его и подождать некоторое время - это, вообще тема для отдельного разговора.
using UnityEngine;
using UnityEngine.SocialPlatforms.GameCenter;
using System.Collections;

public class UnityGameCenter : MonoBehaviour {
 
 void Start ()
 {
 #if UNITY_IPHONE 
  if (!Social.localUser.authenticated)
   Authenticate();
  GameCenterPlatform.ShowDefaultAchievementCompletionBanner(true);
 #endif
 }
 
 private void NullMe(bool success)
 {
  
 }
 
 public void Authenticate()
 {
  #if UNITY_IPHONE
  Social.localUser.Authenticate(NullMe);
  #endif
 }
 
 public void ReportAchievement(string achievementid)
 {
  #if UNITY_IPHONE
  Social.ReportProgress(achievementid, 100.0f, NullMe);
  #endif
 }
 
 public void ReportScore(string leaderboardid, long score)
 {
  #if UNITY_IPHONE
  Social.ReportScore(score, leaderboardid, NullMe);
  #endif
 }
 
 public void ShowAchievements()
 {
  #if UNITY_IPHONE
  if (Social.localUser.authenticated)
   Social.ShowAchievementsUI();
  #endif
 }
 
 public void ShowLeaderboard()
 {
  #if UNITY_IPHONE
  Social.ShowLeaderboardUI();
  #endif
 }
}

Комментарии

Отправить комментарий