Unity3d 显示IOS基本的游戏中心脚本

时间:2021-02-13 19:57:00
using UnityEngine;

using UnityEngine.SocialPlatforms;

public class Startup : MonoBehaviour

{

    // we'll create some buttons in OnGui, allowing us to bump achievement and

    // score values for testing

    private double ach1 = ;

    private double ach2 = ;

    private double ach3 = ;

    private double ach4 = ;

    private long score1 = ;

    private long score2 = ;

    private int buttonWidth = ;

    private int buttonHeight = ;

    private int buttonGap = ;

    void Start()

    {

        Social.localUser.Authenticate(HandleAuthenticated);

    }

    // authentication

    private void HandleAuthenticated(bool success)

    {

        Debug.Log("*** HandleAuthenticated: success = " + success);

        if (success) {

            Social.localUser.LoadFriends(HandleFriendsLoaded);

            Social.LoadAchievements(HandleAchievementsLoaded);

            Social.LoadAchievementDescriptions(HandleAchievementDescriptionsLoaded);

        }

    }

    private void HandleFriendsLoaded(bool success)

    {

        Debug.Log("*** HandleFriendsLoaded: success = " + success);

        foreach (IUserProfile friend in Social.localUser.friends) {

            Debug.Log("*   friend = " + friend.ToString());

        }

    }

    private void HandleAchievementsLoaded(IAchievement[] achievements)

    {

        Debug.Log("*** HandleAchievementsLoaded");

        foreach (IAchievement achievement in achievements) {

            Debug.Log("*   achievement = " + achievement.ToString());

        }

    }

    private void HandleAchievementDescriptionsLoaded(IAchievementDescription[] achievementDescriptions)

    {

        Debug.Log("*** HandleAchievementDescriptionsLoaded");

        foreach (IAchievementDescription achievementDescription in achievementDescriptions) {

            Debug.Log("*   achievementDescription = " + achievementDescription.ToString());

        }

    }

    // achievements

    public void ReportProgress(string achievementId, double progress)

    {

        if (Social.localUser.authenticated) {

            Social.ReportProgress(achievementId, progress, HandleProgressReported);

        }

    }

    private void HandleProgressReported(bool success)

    {

        Debug.Log("*** HandleProgressReported: success = " + success);

    }

    public void ShowAchievements()

    {

        if (Social.localUser.authenticated) {

            Social.ShowAchievementsUI();

        }

    }

    // leaderboard

    public void ReportScore(string leaderboardId, long score)

    {

        if (Social.localUser.authenticated) {

            Social.ReportScore(score, leaderboardId, HandleScoreReported);

        }

    }

    public void HandleScoreReported(bool success)

    {

        Debug.Log("*** HandleScoreReported: success = " + success);

    }

    public void ShowLeaderboard()

    {

        if (Social.localUser.authenticated) {

            Social.ShowLeaderboardUI();

        }

    }

    // gui

    public void OnGUI()

    {

        // four buttons, allowing us to bump and test setting achievements

        int yDelta = buttonGap;

        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 1")) {

            ReportProgress("A0001", ach1);

            ach1 = (ach1 == ) ?  : ach1 + ;

        }

        yDelta += buttonHeight + buttonGap;

        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 2")) {

            ReportProgress("A0002", ach2);

            ach2 = (ach2 == ) ?  : ach2 + ;

        }

        yDelta += buttonHeight + buttonGap;

        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 3")) {

            ReportProgress("A0003", ach3);

            ach3 = (ach3 == ) ?  : ach3 + ;

        }

        yDelta += buttonHeight + buttonGap;

        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 4")) {

            ReportProgress("A0004", ach4);

            ach4 = (ach4 == ) ?  : ach4 + ;

        }

        // show achievements

        yDelta += buttonHeight + buttonGap;

        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Show Achievements")) {

            ShowAchievements();

        }

        // two buttons, allowing us to bump and test setting high scores

        int xDelta = Screen.width - buttonWidth - buttonGap;

        yDelta = buttonGap;

        if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Score 1")) {

            ReportScore("L01", score1);

            score1 += ;

        }

        yDelta += buttonHeight + buttonGap;

        if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Score 2")) {

            ReportScore("L02", score2);

            score2 += ;

        }

        // show leaderboard

        yDelta += buttonHeight + buttonGap;

        if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Show Leaderboard")) {

            ShowLeaderboard();

        }

    }

}

http://forum.unity3d.com/threads/116901-Game-Center-Support/page3