Unity3.5 GameCenter基础教程(转载)

原地址:

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

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 = 0;
    private double ach2 = 0;
    private double ach3 = 0;
    private double ach4 = 0;
   
    private long score1 = 1000;
    private long score2 = 200;
   
    private int buttonWidth = 120;
    private int buttonHeight = 50;
    private int buttonGap = 10;
   
    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 == 100) ? 0 : ach1 + 10;
        }
        yDelta += buttonHeight + buttonGap;
        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 2")) {
            ReportProgress("A0002", ach2);
            ach2 = (ach2 == 100) ? 0 : ach2 + 10;
        }
        yDelta += buttonHeight + buttonGap;
        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 3")) {
            ReportProgress("A0003", ach3);
            ach3 = (ach3 == 100) ? 0 : ach3 + 10;
        }
        yDelta += buttonHeight + buttonGap;
        if (GUI.Button(new Rect(buttonGap, yDelta, buttonWidth, buttonHeight), "Ach 4")) {
            ReportProgress("A0004", ach4);
            ach4 = (ach4 == 100) ? 0 : ach4 + 10;
        }
        // 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 += 500;
        }
        yDelta += buttonHeight + buttonGap;
        if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Score 2")) {
            ReportScore("L02", score2);
            score2 += 100;
        }
        // show leaderboard
        yDelta += buttonHeight + buttonGap;
        if (GUI.Button(new Rect(xDelta, yDelta, buttonWidth, buttonHeight), "Show Leaderboard")) {
            ShowLeaderboard();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值