0

ゲームでプレイヤーの詳細 (スコアを意味する) を保存するための LeaderBoard を開発する必要がありました。UNITY3D の LeaderBoard でプレイヤーのスコアを表示するだけです。以下のコードにソーシャル プラットフォームの NameSpace がありますが、unity3d で LeaderBoard を開始する方法と実装する方法がわかりません。

  using UnityEngine;
  using System.Collections.Generic;
  using UnityEngine.SocialPlatforms;


  public class LBoard : MonoBehaviour 
   {
        ILeaderboard leaderBoard;  
       // Use this for initialization
      void Start () 
        {
            leaderBoard = Social.CreateLeaderboard();
         }

      // Update is called once per frame
      void Update ()
       {

       }

   }
4

2 に答える 2

-1

ローカルのハイ スコア テーブルのようなランキングを意味する場合、AddScore とハイ スコアを取得する関数の 2 つの関数が必要になります。(この例は C# であることに注意してください)

function AddScore(string name, int score){
   int newScore;
   string newName;
   int oldScore;
   string oldName;
   newScore = score;
   newName = name;
   for(int i=0;i<10;i++){
      if(PlayerPrefs.HasKey(i+"HScore")){
         if(PlayerPrefs.GetInt(i+"HScore")<newScore){ 
            // new score is higher than the stored score
            oldScore = PlayerPrefs.GetInt(i+"HScore");
            oldName = PlayerPrefs.GetString(i+"HScoreName");
            PlayerPrefs.SetInt(i+"HScore",newScore);
            PlayerPrefs.SetString(i+"HScoreName",newName);
            newScore = oldScore;
            newName = oldName;
         }
      }else{
         PlayerPrefs.SetInt(i+"HScore",newScore);
         PlayerPrefs.SetString(i+"HScoreName",newName);
         newScore = 0;
         newName = "";
      }
   }
}

そして、ハイスコアを取得するには:

void GetHighScores()
{
    for(int i = 0; i < 10; i++)
    {
        Debug.Log(PlayerPrefs.GetString(i + "HScoreName") + " has a score of: " +  PlayerPrefs.GetInt(i + "HScore"));
    }
}

ネットワーク/オンライン リーダーボードを作成する場合は、GameFlyなどを使用する必要があります(その例を見てください)。

于 2013-07-16T05:03:10.003 に答える