깃허브 링크에서 current-build 폴더 내부에 GooglePlayGamesPlugin-0.10.11.unitypackage 파일을 다운받아 본인의 프로젝트에 임포트해주세요.
임포트가 끝났다면 해당 에셋을 Setup 해주겠습니다. 아래 사진을 참조하여 Android Setup 기능을 실행해주세요.
여기에 우리가 초반에 복사해두었던 리소스 코드와 클라이언트 ID를 사용할 것입니다.
1번에 리소스 코드, 2번에 클라이언트 ID를 붙여넣기 해주세요.
이후 Setup 버튼을 클릭해주시면 성공적으로 구글 플레이에 연동할 값들을 입력해줄 수 있습니다.
이제 실제로 로그인이 되는지 확인해보겠습니다. 이번에 테스트를 위해서 버튼을 두개 준비해두었습니다.
하나는 로그인을 실행하는 버튼, 하나는 로그아웃을 실행하는 버튼입니다.
마지막으로 로그인이 됬는지 여부를 확인하기 위해 Text 도 하나 소환하였지만, 귀찮아서 콘솔로 확인하겠습니다.
실제 앱에서는 상단에 Play Login 됬다는 팝업이 등장합니다.
이제 스크립트를 작성해봅시다.
Google Play API를 사용하려면 GooglePlayGames 를 참조해야 합니다.
using GooglePlayGames;
using GooglePlayGames.BasicApi;
로그인을 하기에 앞서 PlayGamesPlatform 인스턴스를 새로 만들어 활성화 해주어야 합니다.
이는 새로 게임을 실행했을때 Google Play API를 사용하기 위한 여러저런 데이터를 초기화해주는 역할입니다.
//초기화 함수. 인스턴스를 만드는 역할.
PlayGamesPlatform.InitializeInstance(new PlayGamesClientConfiguration.Builder().Build());
//디버그용 변수
PlayGamesPlatform.DebugLogEnabled = true;
//구글 관련 서비스 활성화.
PlayGamesPlatform.Activate();
로그인을 하기 위해선 로컬에 연결된 계정이 인증되었는지 확인하고 안됬다면 인증 단계에 진입합니다.
if(!Social.localUser.authenticated) //현재 기기와 연결된 계정이 인증이 아직 안됬는가?
{
//계정 인증
Social.localUser.Authenticate((bool isSuccess) =>
{
if(isSuccess)
{
Debug.Log("인증 성공 -> " + Social.localUser.userName);
}
else
{
Debug.Log("인증 실패");
}
}
);
}
로그아웃을 하기 위해선 간단하게 SignOut() 으로 최근 연결된 계정의 로그아웃을 진행합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
public class GooglePlayLoginSample : MonoBehaviour
{
private void Awake()
{
//초기화 함수. 인스턴스를 만드는 역할.
PlayGamesPlatform.InitializeInstance(new PlayGamesClientConfiguration.Builder().Build());
//디버그용 변수
PlayGamesPlatform.DebugLogEnabled = true;
//구글 관련 서비스 활성화.
PlayGamesPlatform.Activate();
}
public void Do_Login()
{
if(!Social.localUser.authenticated) //현재 기기와 연결된 계정이 인증이 아직 안됬는가?
{
//계정 인증
Social.localUser.Authenticate((bool isSuccess) =>
{
if(isSuccess)
{
Debug.Log("인증 성공 -> " + Social.localUser.userName);
}
else
{
Debug.Log("인증 실패");
}
}
);
}
}
public void Do_Logout()
{
//로그아웃
((PlayGamesPlatform)Social.Active).SignOut();
}
}
이후 버튼에 함수를 연결해서 실제로 작동되는지 확인해보겠습니다.
유니티 에디터에서 실행하니 인증에 실패했습니다. 아마 직접적으로 연결한 구글 계정이 없어서 그런 것 같습니다.
그럼 테스트를 위해서 APK 파일로 빌드해 제 핸드폰에서 실행해보겠습니다만, 그 이전에
테스트용 계정으로 제 계정을 등록하겠습니다.
Google Play Console로 돌아옵니다.
왼쪽에 테스트 메뉴에 들어가면 테스트 메뉴를 확인할 수 있습니다.
이곳에서 테스트용 계정을 등록하고 해당 계정으로 테스트를 해볼 수 있습니다.
다만, 게임 출시 이후에 해당 테스트 계정을 출시판에 사용할 수 없습니다. 만약 사용하고 싶다면, 테스터에서 제거해주어야 합니다.
그럼 APK로 빌드 후, 스마트폰에 설치해 실행해보겠습니다. 참고로 테스트한 기기는 갤럭시 S10 5G 입니다.
로그인을 시도해본 결과,ㅇ 성공적으로 로그인을 할 수 있었습니다.
로그아웃을 누른 후에, 로그인을 다시 시도해본 결과, 로그인할 계정을 선택할 수 있도록 메뉴가 출력되었고, 선택한 이후로는 성곡적으로 로그인이 가능했습니다.