본문 바로가기

유니티

유니티 구글플레이 리더보드 연동

반응형

구글플레이 연동은 다 끝냈으니 이제 구글플레이 리더보드를 이용해서 랭킹시스템을 만들어보겠다.

우선 구글플레이 콘솔에 들어가서 자신이 만든 어플리케이션 설정으로 들어간다.

그 후 리더보드창에 들어가서 리더보드를 만들면 된다. 리더보드 생성을 누르면

이런 느낌으로 내 리더보드 상세설정을 설정해주고 생성하면 된다.

설정은 어려울게 없어서 자신이 구현하고 하는대로 설정해주면 된다. 

리더보드를 다 만들었으면 리소스 보기 가면

이렇게 Android(XML)을 볼 수 있다.

처음에 구글플레이 연동을 해봤으면 알곘지만 Window->Google Play Gaems -> Set up -> Android Setup에 위 리소스를 복사해서 넣어주고 Set Up 버튼을 눌러주면 

위와같이 Assets에 GPGSids라는 스크립트가 생긴다.

 

 

여기까지 따라왔으면 다 끝난것이다.

using System.Collections;
using System.Collections.Generic;

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SocialPlatforms;


using GooglePlayGames;
using GooglePlayGames.BasicApi;

public class LeaderBoard : MonoBehaviour
{   
    public Text score;
    public void ShowLeaderboardUI_Ranking() 
    => ((PlayGamesPlatform)Social.Active).ShowLeaderboardUI(GPGSIds.leaderboard_ranking);
    //내 리더보드 목록중 랭킹이라는 이름의 리더보드를 바로 보여준다
    
    public void ShowLeaderboardUI() => Social.ShowLeaderboardUI(); 
    //내 리더보드 목록을 보여주고 그 중 선택할 수 있다.

    public void AddLeaderboard()//점수를 기록하는 함수
    => Social.ReportScore(int.Parse(score.text),GPGSIds.leaderboard_ranking,(bool success)=>{});
}
//GPGSIds 스크립트는 static이어서 따로 참조할 필요가없다

기본설정을 마치면 생성되는 GPGSIds라는 스크립트는 static으로 선언되있어서 따로 참조할 필요없이 바로 다른 스크립트에서 참조할 수 있다. 위 코드는 어려울것없이 주석만봐도 바로 알 수 있다.

나는 메인화면에서 랭킹 버튼을 누르면 ShowLeaderboardUI_Ranking() 함수가 실행되게, 그리고 본 게임화면에서 Gameover가 되면 AddLeaderboard()함수가 실행되서 리더보드에 내 점수가 등록되게 구현했다.

실행결과

P.S

+휴대폰 화면 녹화기능 썻는데 왜 세로로 녹화가 되는거지?? 원래는 이상없었는데

 

++리더보드에 접근하려고 하니 Android Logcat에 노란색으로 warn이 뜨면서 접근이 안됐다.

알고보니 리더보드에 접근하기전에

Social.localUser.Authenticate((bool success) => 
        {
            if(success)
            {
                Debug.Log(Social.localUser.id);
            }
        });//시작할때 Authenticate를 해줘야 리더보드에 접근 할 수 있다.

이 코드가 한 번 실행되어야 한다. 그래서 나는 main화면 들어가자마자 위의 코드가 실행되게 구현했다.

 

+++ 리더보드를 처음 생성하고 목록에서 출시됨이 표시되어야 문제없이 리더보드가 실행이 된다고 하는 것 같다.

출시됨이 어떤 말을 하는건지 잘 모르겠다면 이번 포스팅의 4번째 사진을 확인해보자.

벌써 기억이 가물가물하긴한데 처음 리더보드 생성하고 출시하기 버튼인가 누르면 됐던거 같다.

 

++++ 실행결과에서 보면 게임오버되고 리더보드에 들어가면 내 점수를 모든 사람들에게 전부 공개하거나  친구에게만 공개하거나로 설정 할 수 있다. 

 

출처: https://www.youtube.com/watch?v=-u7LYc0HgyQ 

 

반응형