Unity 6.3
0 онлайн 17 гостей 3 в системе
Вход

Социальные 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