유니티 GPGS 구글 플레이 게임서비스 연결처리를 해본다.
1. playgameservices 깃허브로 가서 최신버전 releases를 받는다.
https://github.com/playgameservices/play-games-plugin-for-unity/releases
압축을 풀고 [current-build] 폴더안에 있는 [GooglePlayGamesPlugin-0.10.13.unitypackage]파일을 실행해서
import를 해준다. 버전은 시기에 따라 달라 질 수가 있다.
2. 구글 콘솔에서 앱만들기를 해서 게임으로 앱을 만든다.
그다음 프로덕션에서 새 버전만들기를 누르고 해당 App Bundle에
유니티에서 빌드처리를 해서 생성된 aab파일을 업로드 해준다.
3. 구글콘솔 Play 게임 서비스 - 설정 및 관리 - 설정에 들어가서
게임에서 이미 Google API를 사용하고 있나요? 질문에
[아니요. 게임에서 Google API를 사용하지 않습니다.]라고 선택해준다.
화면이 변경되면 사용자 인증정보란에 설정을 클릭해 준다.
OAuth 동의 화면 구성에 대한 내용을 읽어본 뒤 Google Cloud Platform 사이트로 이동한다.
사이트로 이동한 뒤 OAuth동의 화면 탭으로 가서 [내부]or[외부] 중 [외부]를 선택하고 난 뒤
앱이름, 이메일, 개발자 연락처 입력 뒤 [저장 후 계속]을 클릭한다.
다시 구글콘솔로 이동~
구글콘솔 - Play 게임 서비스 - 설정 및 관리 - 설정 화면으로 간다.
해당 화면에 [사용자 인증 정보]란의 [사용자 인증 정보추가] 버튼을 클릭한다.
총 3개의 사용자 인증 정보를 추가 하여야 된다.
[1번째 사용자 인증정보 추가]
[사용자 인증 정보추가] 버튼을 클릭
유형 - 게임서버
이름 - 앱이름과 동일하게
OAuth클라이언트 만들기 클릭하여 내용을 확인 후 Google Cloud Platform 사이트로 이동한다.
사용자 인증 정보 탭의 OAuth 클라이언트 ID 만들기를 클릭
애플리케이션 유형을 웹 애플리케이션
이름은 앱이름과 동일
입력 후 만들기를 클릭
생성 후 구글콘솔에서 OAuth 클라이언트 새로 고침하게 되면 OAuth 클라이언트 선택할 수 있는 리스트가 나타난다.
선택 후 맨 우측 아래 [변경사항 저장]을 클릭해 준다.
[2번째 사용자 인증정보 추가]
[사용자 인증 정보추가] 버튼을 클릭
유형 - Android
이름 - 앱이름과 동일하게
불법 복제 방지 사용 - 사용안함
OAuth클라이언트 만들기 클릭하여 내용을 확인 후 (유형, 이름, 지문, 패키지 이름 을 복사해 둔다.)
Google Cloud Platform 사이트로 이동한다.
사용자 인증 정보 탭의 OAuth 클라이언트 ID 만들기를 클릭
(복사해 둔 정보를 붙여 넣는다.)
애플리케이션 유형을 Android
이름은 앱이름과 동일
패키지 이름 SHA-1 인증서 지문 등 복사해 놓은 문자를 붙여 넣는다.
공백이 없어야 된다.
입력 후 만들기를 클릭
생성 후 구글콘솔에서 OAuth 클라이언트 새로 고침하게 되면 OAuth 클라이언트 선택할 수 있는 리스트가 나타난다.
선택 후 맨 우측 아래 [변경사항 저장]을 클릭해 준다.
[3번째 사용자 인증정보 추가]
[사용자 인증 정보추가] 버튼을 클릭
유형 - Android
이름 - 앱이름과 동일하게
신규 설치에 사용 - 체크 해제
불법 복제 방지 사용 - 사용안함
OAuth클라이언트 만들기 클릭하여 내용을 확인 후
구글콘솔의 설정 - 앱 무결성 페이지로 가서 업로드 키 인증서란에 SHA-1 인증서 지문 코드를 복사해 둔다.
Google Cloud Platform 사이트로 이동한다.
사용자 인증 정보 탭의 OAuth 클라이언트 ID 만들기를 클릭
2번째 사용자 인증과 동일하게 기입을 하고 SHA-1만 저장해 둔 지문코드로 넣어준다.
입력 후 만들기를 클릭
생성 후 구글콘솔에서 OAuth 클라이언트 새로 고침하게 되면 OAuth 클라이언트 선택할 수 있는 리스트가 나타난다.
선택 후 맨 우측 아래 [변경사항 저장]을 클릭해 준다.
구글 콘솔의 사용자인증정보를 보면 총 게임서버 1개와 2개의 Android 사용자 정보가 나타난다.
Google Cloud Platform 사이트로 가서 OAuth동의화면으로 가서 게시상태에 [앱 게시]버튼을 눌러서
확인상태로 변경한다.
Google Cloud Platform 사이트의 라이브러리 탭에 가서
[Google Workspace Marketplace SDK]를 사용으로 변경처리 해준다.
구글 콘솔의 사용자인증정보로 다시 가보면 오른쪽에 리소스보기가 있다.
클릭하여 복사해 둔다.
유니티에 Window - Google Play Games - Setup - Android setup 을 실행시켜서
1번에 리소스보기에서 복사한 코드를 붙여넣고
Google Cloud Platform 사이트의 사용자 인증정보로 가서 Web Client의 클라이언트 ID를 복사하여
2번에 붙여넣어 준다.
이제 유니티에 로그인 코드를 만들고 실행해서 잘 작동하는지 확인해 본다.
로그인 파일 C#을 하나 만들어 주고
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using GooglePlayGames.BasicApi.SavedGame;
using GooglePlayGames.BasicApi.Events;
public class PlayGameLoginAuth
{
static PlayGameLoginAuth Auth_inst = new PlayGameLoginAuth();
public static PlayGameLoginAuth playgame_inst => Auth_inst;
ISavedGameClient SavedGame =>
PlayGamesPlatform.Instance.SavedGame;
IEventsClient Events =>
PlayGamesPlatform.Instance.Events;
private string authCode;
void Init()
{
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
.EnableSavedGames() /* enables saving game progress. */
.Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true; // recommended for debugging:
PlayGamesPlatform.Activate(); // Activate the Google Play Games platform
}
public void PlayGameLogin(Action<bool, UnityEngine.SocialPlatforms.ILocalUser> onLoginSuccess = null)
{
Init();
PlayGamesPlatform.Instance.Authenticate(SignInInteractivity.CanPromptAlways, (success) =>
{
onLoginSuccess?.Invoke(success == SignInStatus.Success, Social.localUser);
});
}
public void PlayGameLogOut()
{
PlayGamesPlatform.Instance.SignOut();
}
}
그리고 버튼을 만들고 클릭시에 로그인을 호출 하도록 해보자.
버튼 클릭시 로그인 코드
//Google PlayGame Login
PlayGameLoginAuth.playgame_inst.PlayGameLogin((success, localUser) =>
// log = $"{success}, {localUser.userName}, {localUser.id}, {localUser.state}, {localUser.underage}");
{if (success) data._HeartCnt = 5;}
);
테스트 결과 잘 되는것을 확인하였다.
'Programing > Unity' 카테고리의 다른 글
[Unity error] Compressed texture ... is used as icon. This might compromise visual quality of the final image. Uncompressed format might be considered as better import option. (0) | 2022.01.07 |
---|---|
[Unity] 스크립트에서 다른 오브젝트의 스크립트 Method를 호출하는법 (0) | 2022.01.07 |
Unity 모바일 디바이스 화면 꺼짐 방지 및 시간설정 (0) | 2021.12.28 |
[Unity] 유니티 에디터 테마 변경 (0) | 2021.12.17 |
[Unity] 유니티 버튼 클릭이 안되는 경우, 클릭하다가 더이상 안되는경우 (10) | 2021.12.14 |
댓글