返回介绍

社交API

发布于 2021-06-20 00:15:04 字数 2992 浏览 894 评论 0 收藏 0

社交 API (Social API) 是 Unity 访问社交功能的点,例如:

  • 用户配置文件
  • 好友列表
  • 成就
  • 统计数据/排行榜

它为不同的社交后端(例如 XBox Live 或 GameCenter)提供 统一的界面,且将主要由程序员用于游戏工程上。

社交 API (Social API) 主要是一个异步的 API,典型的用法是通过函数调用,并在该函数完成时注册一个回调。异步函数可能会有副作用,例如在 API 中填入某些状态变量,并且回调可能会含有来自服务器的待处理数据。

社交 (Social) 类存在于 UnityEngine 命名空间中,因此总是可用的。但是其他的社交 API (Social API) 类则保存在其自己的命名空间 UnityEngine.SocialPlatforms 中。此外,社交 API (Social API) 在子命名空间(如 SocialPlatforms.GameCenter)中实现。

以下是社交 API (Social API) 的使用方法示例 (JavaScript):

import UnityEngine.SocialPlatforms;

function Start () {
    //认证并注册一个 ProcessAuthentication 回调
    //需在我们可以转到社交 API (Social API) 中的其他调用之前实现此调用
    Social.localUser.Authenticate (ProcessAuthentication);
}

//此函数在认证 (Authenticate) 完成时被调用
//请注意,如果操作成功,Social.localUser 将包含来自服务器的数据。 
function ProcessAuthentication (success:boolean) {
    if (success) {
        Debug.Log ("Authenticated, checking achievements");

        //请求加载的成就,并注册一个回调以对其进行处理
        Social.LoadAchievements (ProcessLoadedAchievements);
    }
    else
        Debug.Log ("Failed to authenticate");
}

//此函数在 LoadAchievement 调用完成时被调用
function ProcessLoadedAchievements (achievements:IAchievement[]) {
    if (achievements.Length == 0)
        Debug.Log ("Error:no achievements found");
    else
        Debug.Log ("Got " + achievements.Length + " achievements");

    //您也可以像这样调用函数
    Social.ReportProgress ("Achievement01", 100.0, function(result) {
        if (result)
            Debug.Log ("Successfully reported achievement progress");
        else
            Debug.Log ("Failed to report achievement");
    });
}

以下是使用 C# 的同一示例。

using UnityEngine;
using UnityEngine.SocialPlatforms;

public class SocialExample :MonoBehaviour {

    void Start () {
        //认证并注册一个 ProcessAuthentication 回调
        //需在我们可以转到社交 API (Social API) 中的其他调用之前实现此调用
        Social.localUser.Authenticate (ProcessAuthentication);
    }

    //此函数在认证 (Authenticate) 完成时被调用
    //请注意,如果操作成功,Social.localUser 将包含来自服务器的数据。 
    void ProcessAuthentication (bool success) {
        if (success) {
            Debug.Log ("Authenticated, checking achievements");

            //请求加载的成就,并注册一个回调以对其进行处理
            Social.LoadAchievements (ProcessLoadedAchievements);
        }
        else
            Debug.Log ("Failed to authenticate");
    }

    //此函数在 LoadAchievement 调用完成时被调用
    void ProcessLoadedAchievements (IAchievement[] achievements) {
        if (achievements.Length == 0)
            Debug.Log ("Error:no achievements found");
        else
            Debug.Log ("Got " + achievements.Length + " achievements");

        //您也可以像这样调用函数
        Social.ReportProgress ("Achievement01", 100.0, result => {
            if (result)
                Debug.Log ("Successfully reported achievement progress");
            else
                Debug.Log ("Failed to report achievement");
        });
    }
}

有关社交 API (Social API) 的更多信息,请查看社交 API 脚本参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文