
유니티 프로젝트와 파이어베이스에서 GPGS 연동과 이를 통한 인증 연동을 다뤄본다.
안드로이드 게임들은 거의 대부분이 GPGS으로 인증된다. 순차적으로 따라해보자
먼저, 테스트를 위한 유니티 프로젝트를 생성한다. 모바일 프로젝트를 진행 중이니 3D Mobile로 탬플릿을 진행했지만, 무엇을하든 상관은 없다.
데이터베이스 역할을 하는 파이어베이스의 프로젝트 생성한다.

모바일 프로젝트에서는 PC와 달리 Analytics를 이용할 수 있다. 생성하는 방법은 이전의 파이어베이스 포스트를 참고하자.
위의 세 가지가 동일해야 한다.

플레이 게임즈는 위와 같은 것을 요구한다. 여기서 클라이언트 ID는 구글 플레이 콘솔의 ID이다.
가이드가 파이어베이스 측에만 있는 것이 아니라, 플레이 게임즈 측에도 따로 있다.
최근의 플러그인 업데이트로 인해 파이어 베이스 가이드에서의 아래의 코드들은 작성할 필요가 없어졌다.

특히, 최근 업데이트로 인해 자동 로그인이 지원된다.

위의 사진에서 Source code를 다운받는다.

안드로이드 설정에 대해서 호환성 문제가 없는지 체크해주는 기능이다.
Project Settings - Player - Android로 들어간다.

이 부분에 우리가 만든 앱 이름을 넣어야 한다.



호환성을 위해 스크립팅 백엔드는 IL2CPP로 한다.

나머지는 이전에 AR 프로젝트에서 프로젝트 세팅을 했던 것과 같이 진행한다.

모든 안드로이드 앱의 경우 키스토어를 설정해줘야 한다.
키스토어 파일은 잘 보관해야 한다. 다운 다시 받기 힘듬. 구글드라이브로 모든 팀원들이 공유되어야 한다.

이 때 생성한 키스토어 파일은 열쇠마냥 잘 간직하고 유출되지 않도록 조심해야 한다.

입력된 정보들이 필수 항목들이다.
키스토어로 생성된 인증을 SHA-1 값을 추출해서 파이어베이스 프로젝트에 추가해야 한다.
이 때 Key Tool을 사용한다.

터미널에서 바로 keytool을 입력했을 때, 아래의 설치 과정은 생략한다.

안드로이드는 Java 언어로 이루어져 있다. 이를 위해 JDK가 설치 되는데, 해당 경로에 가보면 거기에 Keytool이 있다.
해당 Keytool을 사용하던지 JDK를 직접 설치하도록 한다.
왜 keytool 명령어가 안됐냐면, 유니티 전용 jdk를 다운 받기 때문에 그런것이기도 하다. 심지어 유니티의 에디터 버전별로 다시 다운 받는다.

아직 안된다. 이것은 Keytool의 위치설정을 먼저 해줘야 하기 때문이다.

환경 변수를 통해 경로를 설정해줘야 한다.

이 중에서 `Path를 편집한다.

keytool이 있는 경로를 넣어준다.

이제 Keytool 명령어가 먹힌다.
여기에 파이어베이스 가이드에서 제공하는 코드를 입력해보자.


안된다. 이는 업데이트로 인해 변동사항이 생겼기 때문인데, 파이어베이스 가이드에는 아직 최신화가 안된 것이다.
Play Games Developer에는 최신화가 되어 있다.
아래와 같이 입력하면 된다.
keytool -list -keystore <키스토어 전체 경로.keystore> -v

입력하면 비밀번호를 입력하라고 나온다. 여기서 어떤 키를 눌러도 커서에는 표시되지 않는데, 실제로는 입력되고 있는 것이다. 정확히 입력하자.

입력하고 나면 위와 같이 키가 나온다. SHA1, SHA256 둘 다 키로 사용할 수 있다. SHA1을 긁어서 아래 사진과 같이 입력한다.

안드로이드 앱 개발자 전용 페이지다. 어플을 출시할 때 까지 여기서 모든 설정이 이루어진다.

출시되는 앱을 만든다. 해당되는 정보들을 입력하고 생성한다.

여기에 나오는 절차들을 전부 따라가면, 알아서 게임이 출시가 된다.



새 클라우드 프로젝트를 만든다.

먼저 구글 클라우드 플랫폼으로 이동



이후의 정보들을 입력하고 만들기를 누른다.
다시 콘솔로 돌아간다.

Android, 게임 서버 둘 다 입력해야 한다.

먼저 게임 서버를 진행한다. 정보들을 입력하고, OAuth 클라이언트 만들기 를 클릭한다.

클라이언트 만들기 클릭.

요렇게 한 다음, 만들기를 누른다.

만일의 경우를 대비해 JSON으로 다운받는다.

수정하기를 눌러보면, 다시 클라이언트 ID와 비밀번호를 확인할 수 있다.
만들었으니 이제 다시 콘솔로 돌아간다. OAuth 클라이언트를 선택 해주고, 변경 사항을 저장한다.

안드로이드 인증 정보도 추가한다. OAuth 클라이언트를 Android 용으로 또 만들어줘야 한다.

패키지 이름과 sha-1 인증서 지문을 Firebase와 동일하게 입력해줘야 한다.

이 버튼을 누르면 게시하기까지 필요한 남은 절차들을 알 수 있다.

3가지가 더 필요하다고 나온다.

속성 수정에서 설명을 추가하고 이미지를 추가한다. 여기서 중요한 점이 있는데, 이미지는 사이즈가 정확하게 맞아야 한다.
Play Games Plug-in for Unity를 설치한다. 위에서 받았던 알집을 풀면 아래와 같이 나온다.

여기서 current-bulid에 들어간다.

이 유니티 패키지를 설치하면 된다.

구글 버전 핸들러가 알아서 파일 체크 해준다. Apply하자.

Android Setup을 켜준다.
Play Console에서 가져온 Android 리소스 스니펫을 Resources Definition 필드에 집어넣는다.

리소스 보기를 누른다.

이 코드를

여기에 붙여넣는다.

여기다가는 아까 만든 웹 OAuth 클라이언트의 클라이언트ID를 넣으면 된다.

여기에 들어오면 오른쪽에 있다.
셋업이 끝났다면 이제 빌드가 잘 만들어지는지 테스트 해본다.
테스트가 성공하면 다음 단계로 넘어가자
인증이 제대로 되는지 테스트하기 위한 스크립트
using UnityEngine;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
public class GPGSTester : MonoBehaviour
{
public void GPGSTest()
{
PlayGamesPlatform.Instance.Authenticate(OnAuthenticated);
}
private void OnAuthenticated(SignInStatus status)
{
if (status == SignInStatus.Success)
{
Debug.Log("로그인 성공");
}
else
{
Debug.LogWarning("로그인 실패");
}
}
}
이제 다시 빌드를 뜨고 apk를 돌릴 수 있는 기기에서 테스트 해보면, 게임이 켜짐과 동시에 인증이 뜨는 것을 볼 수 있다.
등록된 테스터들만 가능한 기능. 플레이스토어에서 직접 다운받아서 제대로 실행이 되는지 확인하기 위한 방법이다. 가이드 참고.
인증 자체는 되는데, 현재로써는 파이어베이스에 유저의 아이디가 등록되지 않는다. 파이어베이스 가이드 참고
파이어베이스 애널리틱스와 연동해서 사용할 수 있다. 게임의 이벤트 추적이 가능해짐.