Exemple #1
0
    // Notes about posting a score:
    //
    // If the user is not logged in, the score will not be submitted successfully.
    //
    // When submitting a score natively, if the score submission fails, the score is cached locally on the device and resubmitted
    // when the user logs in or next time the app loads, whichever comes first.
    //
    // Metadata (optional) is stored and retrieved with each score.  It can be used
    // to save additional state information with each score.
    //
    // The display string can be used to append units or create a custom format
    // for your score to be displayed.  The score value, passed in constructor,
    // is only used for sorting scores on the backend (to determine which is best),
    // the display string is used for displaying scores in the UI.
    void SubmitSampleScore()
    {
        int lapTime   = 5400;        // value in hundredths
        int total_sec = lapTime / 100;
        int total_min = total_sec / 60;
        int hour      = total_min / 60;
        int min       = total_min % 60;
        int sec       = total_sec % 60;
        int hun       = lapTime % 100;

        string scoreString = "" + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00") + "." + hun.ToString("00");

        OKScore score = new OKScore(lapTime, SampleLeaderboardID);

        score.displayString = scoreString;
        score.gameCenterLeaderboardCategory = SampleLeaderboardGameCenterCategory;

        // OKScore can be submitted to OpenKit in C# native unity, or platform native code (e.g. iOS and Android native cdoe).
        // When possible you should use the platform native versions of OKScore.SubmitScore because both iOS and Android SDKs
        // have local caching built in, as well as features like submit to GameCenter (iOS).

        Action <bool, string> nativeHandle = (success, errorMessage) => {
            if (success)
            {
                OKLog.Info("Score submitted successfully!");
            }
            else
            {
                OKLog.Info("Score did not submit. Error: " + errorMessage);
            }
        };

        Action <OKScore, OKException> defaultHandle = (retScore, err) => {
            if (err == null)
            {
                OKLog.Info("Score submitted successfully: " + retScore.ToString());
            }
            else
            {
                OKLog.Info("Score post failed: " + err.Message);
            }
        };

        if (submitScoreNatively)
        {
            score.SubmitScoreNatively(nativeHandle);
        }
        else
        {
            score.MetadataBuffer = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x80 };
            score.SubmitScore(defaultHandle);
        }
    }
    // Notes about posting a score:
    //
    // If the user is not logged in, the score will not be submitted successfully.
    //
    // When submitting a score natively, if the score submission fails, the score is cached locally on the device and resubmitted
    // when the user logs in or next time the app loads, whichever comes first.
    //
    // Metadata (optional) is stored and retrieved with each score.  It can be used
    // to save additional state information with each score.
    //
    // The display string can be used to append units or create a custom format
    // for your score to be displayed.  The score value, passed in constructor,
    // is only used for sorting scores on the backend (to determine which is best),
    // the display string is used for displaying scores in the UI.
    void SubmitSampleScore()
    {
        int lapTime   = 5400;        // value in hundredths
        int total_sec = lapTime / 100;
        int total_min = total_sec / 60;
        int hour      = total_min / 60;
        int min       = total_min % 60;
        int sec       = total_sec % 60;
        int hun       = lapTime % 100;

        string scoreString = "" + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00") + "." + hun.ToString("00");

        OKScore score = new OKScore(lapTime, SampleLeaderboardID);

        score.gameCenterLeaderboardCategory = "openkitlevel3";
        score.displayString = scoreString + " seconds";

        Action <bool, string> nativeHandle = (success, errorMessage) => {
            if (success)
            {
                Debug.Log("Score submitted successfully!");
            }
            else
            {
                Debug.Log("Score did not submit. Error: " + errorMessage);
            }
        };

        Action <OKScore, OKException> defaultHandle = (retScore, err) => {
            if (err == null)
            {
                Debug.Log("Score submitted successfully: " + retScore.ToString());
            }
            else
            {
                Debug.Log("Score post failed: " + err.Message);
            }
        };

        bool dropToNative = true;

        if (dropToNative)
        {
            score.SubmitScoreNatively(nativeHandle);
        }
        else
        {
            score.MetadataBuffer = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x80 };
            score.SubmitScore(defaultHandle);
        }
    }