Социальные API
Примечание: Социальная API устарела и будет удалена в будущем выпуске.
Социальные API является точкой доступа Unity к социальным функциям, таким как:
- Профиль пользователя
- Списки друзей
- Достижения
- Статистика / Таблицы лидеров
Он предоставляет единый интерфейс к разным социальным бэкендам, таким как GameCenter, и предназначен для использования в первую очередь программистами на игровом проекте.
Social API в основном асинхронный: обычно вы вызываете функцию и регистрируете обратный вызов на её завершение. Асинхронная функция может иметь побочные эффекты — например, заполнять некоторые переменные состояния в API, — а обратный вызов может содержать данные с сервера, которые нужно обработать.
Класс Social находится в пространстве имён UnityEngine и потому доступен всегда, а остальные классы Social API вынесены в собственное пространство имён UnityEngine.SocialPlatforms. Более того, реализации Social API находятся во вложенном пространстве имён, например SocialPlatforms.GameCenter.
Вот пример того, как использовать социальные API:
using UnityEngine;
using UnityEngine.SocialPlatforms;
public class SocialExample : MonoBehaviour {
void Start () {
// Authenticate and register a ProcessAuthentication callback
// This call needs to be made before we can proceed to other calls in the Social API
Social.localUser.Authenticate (ProcessAuthentication);
}
// This function gets called when Authenticate completes
// Note that if the operation is successful, Social.localUser will contain data from the server.
void ProcessAuthentication (bool success) {
if (success) {
Debug.Log ("Authenticated, checking achievements");
// Request loaded achievements, and register a callback for processing them
Social.LoadAchievements (ProcessLoadedAchievements);
}
else
Debug.Log ("Failed to authenticate");
}
// This function gets called when the LoadAchievement call completes
void ProcessLoadedAchievements (IAchievement[] achievements) {
if (achievements.Length == 0)
Debug.Log ("Error: no achievements found");
else
Debug.Log ("Got " + achievements.Length + " achievements");
// You can also call into the functions like this
Social.ReportProgress ("Achievement01", 100.0, result => {
if (result)
Debug.Log ("Successfully reported achievement progress");
else
Debug.Log ("Failed to report achievement");
});
}
}
Дополнительные сведения о социальной API см. в Справочник по скриптам социальной API