본문 바로가기
Programing/Unity

[Unity] 유니티 구글 플레이 게임서비스 로그인 설정

by TEXTBOX 2022. 1. 4.
728x90

유니티 GPGS 구글 플레이 게임서비스 연결처리를 해본다.

1. playgameservices 깃허브로 가서 최신버전 releases를 받는다.

https://github.com/playgameservices/play-games-plugin-for-unity/releases

 

Releases · playgameservices/play-games-plugin-for-unity

Google Play Games plugin for Unity. Contribute to playgameservices/play-games-plugin-for-unity development by creating an account on GitHub.

github.com

 

압축을 풀고 [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;}
	);

 

테스트 결과 잘 되는것을 확인하였다.

 

728x90

댓글