Google Play Game Service
Google Play에 게임 앱을 올리고 모바일에서 Google Play에 로그인까지 가능하도록 해보자. 먼저 Google Play Console에 앱을 올리는 방법에 대해 알아둘 필요가 있다. 다음 링크를 참고하자. 이 링크를 통해 개발자 계정 등록과 Google Play Console의 기본적인 세팅까지 작업해야한다. (게임 앱으로 등록해야하기 때문에 앱 게시까지는 할 필요없음)
https://algorfati.tistory.com/90
Google Play Console의 기본 세팅이 작업되었다면 이제 유니티로 Google Play에 게시 가능한 모바일 앱을 만들어보자.
유니티에서 구글플레이 계정 연동과 같은 구글 기능들을 이용하려면 Google Play Game Service(GPGS)를 이용하여야 한다. 먼저 다음 코드를 다운받는다.
https://github.com/playgameservices/play-games-plugin-for-unity
폴더 내부에 current-build 위치에 유니티 패키지를 실행시켜서 빈 프로젝트에 이 패키지를 포함시킨다.
최근 GPGS 버전부터는 IOS 빌드를 지원하지 않는다. 그러므로 IOS 에서 NO_GPGS를 추가해준다.
그 후, Build Settings로 가서 Android를 타겟 플랫폼으로 설정하면 GPGS 패키지를 enable 시킬 수 있다는 창이 뜬다.
패키지 enable 세팅작업이 완료되면 Window > Google Play Games > Setup > Android setup 으로 이동한다.
여기에 Google Play Console에 있는 리소스 xml과 Client ID를 추가해주어야 한다.
이 작업을 수행하기 위해 먼저 Google Play Console을 세팅하여야 한다.
https://algorfati.tistory.com/88
작업이 완료되었다면 Google Play Console에서,
Play게임 서비스 > 설정 및 관리 > 설정 페이지에서 속성 -> 사용자 인증정보 하위에 추가된 인증정보로 이동한다.
인증 탭에서 클라이언트 ID를 복사하여 Unity Google Play Games - Android Configuration 에 넣는다.
그 이후 Play 게임 서비스 > 설정 및 관리 > 업적 창으로 이동하여 간단한 업적을 생성한다. (이 작업을 수행하는 이유는 업적이든 이벤트든 리더보드든 아무거나 하나를 생성하고 나면 리소스 xml이 생성되기 때문이다.)
생성된 업적 창으로 이동하고 오른쪽 중간에 있는 리소스 보기 버튼을 누른다.
Android(XML) 에 있는 xml에서 <!--achievement 1--> 부분을 제거하여 Unity Google Play Games - Android Configuration 에 넣고 Setup 버튼을 누른다.
다음 창이 뜨면 성공적으로 GPGS가 붙은 것이다.
안드로이드 구글 계정 로그인
다음으로 GPGS를 이용하여 안드로이드에서 구글 계정 로그인을 할 수 있도록 설정해보자.
먼저 GoogleLogin.cs 스크립트를 하나 생성한다. 그리고 Scene에 GameObject를 하나 생성한 후 GoogleLogin.cs 스크립트를 붙인다.
GoogleLogin.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GooglePlayGames;
public class GoogleLogin : MonoBehaviour
{
void Start()
{
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.Activate();
Login();
}
private void Login()
{
Social.localUser.Authenticate(
(bool success) =>
{
if (success)
{
Debug.LogError("로그인 성공 " + Social.localUser.id + " " + Social.localUser.userName);
}
else
{
Debug.LogError("로그인 실패");
}
});
}
private void Logout()
{
((PlayGamesPlatform)Social.Active).SignOut();
Debug.LogError("로그아웃");
}
}
에디터에서 실행하면 구글 계정이 없기 때문에 로그인 실패가 뜰 것이다. 그러므로 안드로이드 빌드를 수행한다.
빌드를 Build and Run으로 하는 경우 다음과 같은 에러가 뜰 수 있다.
please make sure the android sdk is installed and is properly configured in the editor
이는 같은 패키지로 된 다른 앱이 이미 있어서 생기는 이슈이므로, 기존 앱을 제거하고 다시 수행하면 해결된다.
빌드된 apk를 모바일에서 실행 시 로그인을 실패할 수 있다. 이는 Google Play Console GPGS에서 테스트 계정으로 등록되어있지 않기 때문에 발생하는 이슈일 수 있다.
Google Play Console에서 Play 게임 서비스 > 설정 및 관리 > 테스터 페이지로 이동한다.
테스터 탭을 클릭하고 테스팅을 수행할 구글 계정을 추가한다. (안드로이드에 연동된 구글 계정을 넣어주면 된다.)
모바일에서 앱 실행 시 다음 창이 뜨면 성공적으로 로그인된 것이다.
시행착오
1. 패키지를 다운받고 나면 다음과 같은 에러가 나타난다. (미해결)
Assembly 'Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.162.dll' will not be loaded due to errors: Assembly name 'Google.IOSResolver' does not match file name 'Google.IOSResolver_v1.2.162'
참고
https://www.youtube.com/watch?v=e1Ma6zRd3wA
'게임 엔진 > Unity' 카테고리의 다른 글
[Unity] 유니티 설계 경험 기록 (22) | 2021.11.12 |
---|---|
[Google Play] 구글 플레이 결제 시스템(IAP) 세팅 (0) | 2021.08.08 |
[Unity] [Example] 유니티에서 데이터 관리 방법(ScriptableObject) (0) | 2021.07.12 |
[Unity] [Example] 평면 연산 방법 (Plane) (0) | 2020.07.28 |
[Unity] [Example] Mesh (0) | 2020.07.15 |