본문 바로가기
[Unity]

[Unity] 구글 플레이 로그인 구현

by 김기승 2023. 1. 13.

1) Player Setting에서 'Package Name', 'IL2CPP', '.NET.4.x', ARM64 체크

2) Publishing Settings에서 Keystore 만들어서 적용

3) https://github.com/playgameservices/play-games-plugin-for-unity 에서 유니티 패키지 설치

- 'current-build' 디렉터리에서 .unitypackage 확장자를 찾을 수 있다.

4) Resolving Android Dependencies 실행

- 패키지 설치 후 자동으로 실행되지 않는다면,

Assets/External Dependency Manager/Android Resolver/Force Resolve로 실행할 수 있다.

5) 앱 무결성 탭에서 두 개의 SHA-1 인증서 지문을 복사

- 앱 서명 키 인증서 지문과 업로드 키 인증서 지문으로 두 개의 사용자 인증 정보를 만들기 위함이다.

6) Google Cloud Platform에서 위 SHA-1 인증서 지문을 이용하여 두 개의 OAuth 2.0 클라이언트 ID 생성

- 추가로 웹 애플리케이션 유형도 생성해야한다(총 세 개)

7) Play 게임즈 서비스 설정에서 위 세 개의 OAuth 2.0 클라이언트 ID로 사용자 인증 정보를 추가

- 웹 애플리케이션 유형은 게임 서버로, Android 유형은 Android로 생성한다.

8) 유니티에서 Android Configuration 창 활성화

- Resources Definition에는 사용자 인증 정보 글 옆에 리소스 보기를 클릭하면 나오는 XML를 입력하면 되고,

Client ID에는 게임 서버의 OAuth 클라이언트 ID를 입력하면 된다.

- 모두 입력하면 Setup 버튼을 클릭한다.

9) 모든 설정이 완료되어 사용자 구글 플레이 정보에 접근 가능


using UnityEngine;
using GooglePlayGames;

public class GoogleLogin : MonoBehaviour
{
    /* 구글 로그인 버튼을 클릭하면 실행되는 함수 */
    public void OnClickGoogleLoginButton()
    {
        Social.localUser.Authenticate((bool success) =>
        {
            if (success) //로그인에 성공하면
            {
                Debug.Log(Social.localUser.userName + "님 환영합니다");
                Debug.Log("당신의 ID는 " + Social.localUser.id + "입니다");
            }
            else //로그인에 실패하면
            {
                Debug.Log("로그인에 실패했습니다");
            }
        });
    }

    /* 구글 로그아웃 버튼을 클릭하면 실행되는 함수 */
    public void OnClickGoogleLogoutButton()
    {
        ((PlayGamesPlatform)Social.Active).SignOut();
    }
}

※ 본 글에서 사용한 play-games-plugin-for-unity의 버전은 0.10.14로써 로그아웃 기능이 존재한다.

댓글