2017-01-05 43 views
-1

我創建了一個遊戲記分牌,我希望你能夠看到連接到服務器Steam用戶名的玩家。到目前爲止,我已經創建了記分牌和所有內容,現在唯一的辦法是讓蒸汽用戶名顯示出來,而不是我的「玩家名字出現在這裏」文本。我已經試過幾件事情,但沒有成功:(Unity Steamworks-Leaderboard

這是記分牌腳本:

[SerializeField] 
GameObject playerScoreboardItem; 

[SerializeField] 
Transform playerScoreboardList; 

void OnEnable() 
{ 
    Player[] players = GameManager.GetAllPlayers(); 

    foreach(Player player in players) 
    { 
     GameObject itemGO = (GameObject)Instantiate(playerScoreboardItem, playerScoreboardList); 
     PlayerScoreboardItem item = GetComponent<PlayerScoreboardItem>(); 
     if(item != null) 
     { 
      item.Setup(SteamFriends.GetPersonaName()); 
     } 
    } 
} 

void OnDisable() 
{ 
    foreach(Transform child in playerScoreboardList) 
    { 
     Destroy(child.gameObject); 
    } 
} 

}

這是ScoreboardItem腳本:

[SerializeField] 
Text usernameText; 

public void Setup(string username) 
{ 
    usernameText.text = SteamFriends.GetPersonaName(); 
} 

}

而最後一個腳本:

  string username = SteamFriends.GetPersonaName(); 

     CmdSetUsername(transform.name, username); 
    } 

    GetComponent<Player>().Setup(); 
} 

[Command] 
void CmdSetUsername (string playerID, string username) 
{ 
    Player player = GameManager.GetPlayer(playerID); 
    if(player == null) 
    { 
     Debug.Log(SteamFriends.GetPersonaName() + "joined!"); 
     player.username = SteamFriends.GetPersonaName(); 
    } 
} 
+0

Eeer,請注意,當你有更多的信息來提供,而不是要求其反覆您可以編輯您的問題。此外,您無需等待其他人關閉您的問題 - 如果您覺得他們不再與網站相關(如果他們沒有提供有效的答案),您可以自行刪除它們。 – Serlite

+0

對不起,沒有找到任何地方刪除它;( – Avi3ator

回答

0

爲了達到這個目標,您需要將steamworks集成到您的遊戲中。 此api將幫助您檢索遊戲中的用戶,成就,steamworkshop等。

爲了讓蒸汽工程在您的遊戲中工作,您需要獲得閥門的批准才能使您的遊戲處於蒸汽狀態,例如使其處於綠燈狀態。

這是一個教程,其中包含有關Unity3D上Steamworks的所有信息:Tutorial

如何循環訪問朋友列表並獲取他們的姓名和狀態?

希望這會幫助你更多地瞭解這個問題。

編輯: 我發現了一些文檔,它實際上很簡單。

訪問this網站獲取更多文檔。

EDIT2: 好的沒有朋友,對不起。

我認爲你自己實際上必須自己處理。 每次用戶連接到遊戲服務器時,都將它們添加到列表中,以便您輕鬆獲取它們。 然後,只需使用該列表來處理記分板。

  • Mennolp
+0

我有steamworks實施,我只是想知道如何獲得所有其他玩家的用戶名和顯示在UI文本:) – Avi3ator

+0

哦,我明白了,真的沒有得到那從你上面提到的問題。 我會建議看UI畫布,預製和垂直佈局組件的使用。 – Mennolp

+0

是的,我已經創建了一個Text變量,我唯一需要的是讓玩家蒸汽/蒸汽名稱的代碼 – Avi3ator