注意:社交 API 已弃用,将在未来版本中移除。
社交 API 是 Unity 访问社交功能的入口点,例如
它提供了一个统一的接口来访问不同的社交后端,例如 GameCenter,主要供游戏项目的程序员使用。
社交 API 主要是一个异步 API,使用它的典型方式是调用一个函数并注册一个回调函数,以便在该函数完成后执行。异步函数可能会有副作用,例如填充 API 中的某些状态变量,回调函数可能包含来自服务器的数据以供处理。
Social 类位于 UnityEngine 命名空间中,因此始终可用,但其他 Social API 类则保留在其自己的命名空间 UnityEngine.SocialPlatforms 中。此外,Social API 的实现位于子命名空间中,例如 SocialPlatforms.GameCenter。
以下是如何使用 Social 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");
});
}
}
有关 Social API 的更多信息,请参阅 Social API 脚本参考