플밍

바뀐 플레이 콘솔에서 유니티로 구글로그인 사용하기

에페아 2021. 6. 22. 05:17

저번글에선 인앱을 살펴봤으니 이번엔 구글로그인을 만들어보자

 

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

 

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 안에 있는 패키지파일을 임포트시켜준다

임포트를 다 하면 이런 창이 뜨는데 별 말 아니고 그냥 사용할 준비 다 끝났다는 알림이다

그리고 뭔가 로딩을 더 하는데 다 끝나면

이런 창이 뜬다

해상도 자동으로 보정해주는 기능에 대한건데 설정에서 나중에 다시 켤 수 있다고 하니까 일단은 넘어가겠다

설정은 Assets - External Dependency Manager - Android Resolver - Settings 에 있다고 한다

 

다 끝났으면 이제 플레이 콘솔에 들어가준다

왼쪽 메뉴를 내리다보면 Play 게임 서비스 - 설정 및 관리 - 설정 이 있다

아직 아무것도 적용한 게 없으니까 api를 사용하지 않습니다 를 눌러준다

그래서 설정을 해주면

이렇게 오른쪽 위에 Google Cloud Platform에서 보기 를 눌러준다

원래 플레이 콘솔에서 볼 수 있었던 클라이언트ID가 저기로 갔다

들어가서 클라이언트ID를 만들기 위해 먼저 OAuth 동의 화면에서 설정 진행을 다 하고

사용자 인증 정보 창에서 사용자 인증 정보 만들기 - OAuth 클라이언트 ID를 선택한다

 

 

들어가면 다른건 다 문제없는데 SHA-1 인증서 디지털 지문 이라는 낯선 게 나온다

https://gimchicchige-mukgoshipda-1223.tistory.com/44

 

키스토어 SHA-1 지문 확인하는 가장 간단한 설명

찾아보면 정보가 너무 적거나 괜히 막 헷갈리게 적어놓거나 복잡하게 적어놓은게 많길래 따로 까먹을때마다 딱 필요한 정보만 간결하게 볼 수 있도록 적어두려함 사진처럼 자기 환경에 맞게 치

gimchicchige-mukgoshipda-1223.tistory.com

이 글을 가지고 확인해봐도 되지만, 더 간단한 방법은

플레이콘솔 메뉴 위쪽에서 설정 - 앱 무결성 탭에 들어가면 볼 수 있다

그럼 생성이 완료된다

 

생성을 끝냈으면 다시 플레이 콘솔로 돌아와서

메뉴를 아래로 내리다보면 나오는 리더보드 탭에 들어가서 아무거나 하나 생성해준다

생성했으면 오른쪽 상단에 리소스 보기 를 눌렀을 때 나오는 소스코드를 복사한다

이제 유니티에 들어가서 셋팅을 해줘야한다

Window - Google Play Games - Setup - Android setup 에 들어간다

그럼 이런 큰 창이 뜨는데 가운데 큰 공간에는 방금 리더보드에서 복사한 소스코드를 적고,

아래 Client ID 에는 OAuth2.0 클라이언트 ID를 복사해오면 된다

 

그리고 셋업을 누르면 된다

 

이제 모든 셋팅이 다 끝났으니 스크립트를 작성해준다

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GooglePlayGames;
using GooglePlayGames.BasicApi;

public class LoginManager : MonoBehaviour
{
    [SerializeField] Text _status;

    void Awake()
    {
        //구성 및 초기화
        PlayGamesPlatform.InitializeInstance(new PlayGamesClientConfiguration.Builder().Build());
        //디버깅에 권장됨
        PlayGamesPlatform.DebugLogEnabled = true;
        //PlayGamesPlatform 활성화
        PlayGamesPlatform.Activate();
    }


    public void PlayLogin()
    {
        //현재 사용자가 인증되었는지 확인합니다
        if (!Social.localUser.authenticated)
        {
            //현재 활성 Social API 구현에 대한 로컬 사용자를 인증하고 그의 프로필 데이터를 가져옵니다
            //첫번째 인자 : 성공여부 / 두번째 인자 : 실패시 오류 로그
            Social.localUser.Authenticate((bool isOk, string error) =>
            {
                if (isOk)
                    _status.text = Social.localUser.userName;
                else
                    _status.text = error;
            });
        }
    }

    public void PlayLogout()
    {
        //Social.Active : 현재 활성화된 소셜 플랫폼(지금 상황에서는 PlayGamesPlatform)을 반환
        PlayGamesPlatform platform = Social.Active as PlayGamesPlatform;
        platform.SignOut();
        _status.text = "Logout";
    }
}

대충 UI 넣고 앱 뽑아서 돌려보면 로그인이 잘 되는걸 볼 수 있다

반응형