300x250

구글 플레이 게임즈 샘플 프로젝트 " CubicPilot" 중에 로그인 요청 과정만 간추림.

로그인 요청 흐름과 각 클래스의 책임을 알고자 함.



※ 사전 작업 아래 링크 참조

[Play Games Unity ] 유니티 플레이 게임즈 / 1.프로젝트 셋팅 및 샘플 앱 실행해보기

링크


1. 시퀀스





2. 간략 설명



1. Authenticate 

- MainMenuEvents는 monobehaviour을 확장, Start메서드 콜백 시, 플레레이 게임즈에 로그인하기 위해  GameManager의 Authenticate메서드를 호출.


2. Build Config

PlayGamesClientConfiguration는 (빌더) 패턴을 이용하여 플레이 게임즈 각 기능들을 허용여부를 설정한다.

3. Initialize Instance( PlayGamesPlatform )

- PlayGamesPlatform 인스턴스를 생성한다. ( 싱글턴 )

4. Initialize Instance( PlayGamesLocalUser)

- PlayGamesLocalUser 인스턴스를 생성한다.

- 추후 해당 인스턴스를 이용하여 로그인 작업을 수행한다.


5. Active (PlayGamesPlatform )

- Social.Active의 구현으로 PlayGamesPlatform을 활성화.


6.Set default leaderboard UI with id

- 플레이게임즈 리더보드 기본 설정.


7. Authenticate ( Sign in GPGS )

- 플레이게임즈에 로그인 요청


8.Callback Result

- 로그인 요청 콜백




반응형
300x250

Application 클래스

bool isEditor를 통해 

유니티 에디터 상에서 동작중인지 확인.






또한 

유니티 플랫폼 의존 컴파일 기능을 사용


https://docs.unity3d.com/kr/530/Manual/PlatformDependentCompilation.html



반응형
300x250

구글 플레이 게임즈 유니티 플러그인을 이용하여 게임을 만드려했습니다.

 

그에 앞서 유니티 프로젝트 셋팅 ( 플러그인 임포팅 ), 샘플 앱, 각 기능 스크립트를 분석 및 파악 하고자 

샘플 프로젝트를 실행하려 했습니다.

 

근데 샘플앱 실행하는것 조차, 별의별 에러 때문에 진행속도가 굉장히 더뎠습니다.

 

ClassNotFoundException : com.google.games.bridge.TokenFragment 

Starting Auth Transition. Op: SIGN_IN status: ERROR_NOT_AUTHORIZED 등등 

 

 

그래서 프로젝트에 플러그인 임포팅, 샘플 앱 빌드하는 과정을 적어봤습니다.

 

잘못된 부분 및  질문 코멘트 남겨주시면 성심껏 답변 하겠습니다!

 

 

[버전정보 / Verstion Information]


Unity 2018.3.11f1 / 

play-games-plugin-for-unity  / v0.9.64

unity-jar-resolver / v1.2.105.0

 

 

 

 

1. 유니티 빌드 셋팅 / Unity Build Settings


[Build Settings]

A.빌드 셋팅 / Build Settings

    A.Build System : Gradle

    B.Build App Bundle : Enable

 

 

 

[Player Settings]

 

B. PlayerSettings

    a.Other Settings >Configuration 

        - Scripting Backend : IL2CPP

        - Scripting Runtime Version : .NET 4.x Equiva

        - Target Architectures : ARMv7, ARM64,x86 : enable

 

     b. Resolution and  Presentation > Orientation

        - Default Orientation > Landscape Left

   

 

 

 

 

 

 

 

2. "GooglePlayGamesPlugin" 프로젝트로 불러오기  / Importing the Google Play Games Plugin Pakcage File


 

 

A. playGames Plug in 다운로드 / Download

 

> 필자는 아래 링크에 프로젝트 용량이 약1.7기가 정도 되니 필요한 것만 다운로드

current-build 경로로 이동하여 unity package file 다운로드

 

(2019년 09월 13일 기준 최신버전 v0.9.64)

 

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

 

B. PlayGame 플러그인 불러오기 / Import playGame Plug in

>Import Package > Custom Package.. > 다운받은 unity package file

*Android Dependency가 Resolving 될 때 에러 발생하는지 체크.

 

(정보 1)

*이 때, 같이 딸려오는(?) Google Player Services Resolver v1.2.105.0 이다.

과거 Resovler 버전과 관련한 이슈가 있었지만 현재는 발견되지 않았으니 패스해도 무관.

https://github.com/googlesamples/unity-jar-resolver/issues/208

 

ClassNotFoundException com.google.games.bridge.TokenFragment after updating from version 1.2.104 to 1.2.108 · Issue #208 · googl

ClassNotFoundException happens on startup after updating to 108. It look to be related to that the jar/aar files are now compiled in the gradle file instead of residing in the plugin folder. We tri...

github.com

(필수 아님)

* 최신버전을 쓰고 싶다면...

2019년 9월 13일 기준 : v1.2.124

playGames Plugin에 딸려오는 v1.2.105.0 써도 무관.

https://github.com/googlesamples/unity-jar-resolver

 

 

 

 

 

 

3. "Play Games 샘플 씬 "  불러오기


A.샘플 씬 다운로드

>플러그인 가이드 내용 중, 샘플 씬을 참조하면 빠르게 파악이 가능하다함.

>아래 링크에서 "/samples/" 경로로 이동하여, "CubicPliot"를 다운로드한다.

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

 

 

B.샘플 씬 불러오기

>Import Package > Custom Package.. > 다운받은 Sample Scene

 

 

4."Google Play Console"에서 "애플리케이션" 생성


일반적으로 진행하는 스토어 정보, 앱 버전 ( apk 업로드 ) 등등 정보들을 입력하여 "출시 준비" 상태로 만든다.

 

 

 

 

 

 

5."Google Play Console"에서 게임서비스를 추가


4번 항목과 같이 생성 및 게임 세부정보, 연결된 앱 등 과정을 진행한다.

 

 

 

 

 

 

 

 

6."Google 클라우드 플랫폼"에서 사용자 인증정보 생성하기


 

A. Google 클라우드 플랫폼으로 이동 및 사용자 인증 메뉴

4,5번 항목을 진행했다면 

아래 웹페이지에 해당 프로젝트 항목이 생성되어 있음.

https://console.developers.google.com/apis/dashboard?project=secondgood-97015515&hl=ko

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

Google 클라우드 플랫폼 웹페이지 내에 생성된 프로젝트 항목

 

"해당 프로젝트 선택" >>> "API 및 서비스" >>> "사용자 인증정보"으로 이동하면

OAuth 2.0 클라언트 인증정보 1개가 존재 할 것 인데, 

이것은 "앱 서명 인증서" 이다.

 

 

 

B. OAuth 클라이언트 ID ( 안드로이드) 사용자 인증 정보 만들기

 

a.업로드 인증서

앱에서 Play Games로그인을 정상적으로 처리하기 위해 필요한 것은 

"업로드 인증서 지문" 해시값으로 만든 "인증 정보"이다. 

 

b. 인증서 생성

"사용자 인증 정보 만들기"  >>>> " OAuth 클라이언트 ID " >> "Android"로 이동.

 

- 서명 인증서 지문 :

Google Play Console >>> 해당 애플리케이션 >>> 앱 서명 >>> 업로드 인증서 >>> "SHA-1 인증서 지문"을 복사하여 "SHA1" 문자열을 제거하고 붙혀넣는다.

 

-패키지 이름 : 유니티 안드로이드 패키지명 

 

 

 

C.OAuth 클라이언트 ID ( 웹 ) 인증서 생성

- "사용자 인증 정보 만들기"  >>>> " OAuth 클라이언트 ID " >> "웹 어플리케이션"로 이동.

- 유니티 프로젝트 내에 입력한 정보이니 생성 후 Client ID를 복사해둔다.

 

 

 

 

 

 

 

7. 유니티 프로젝트 내에 "Google Play Games" Set Up 설정


A. Google Play Games 설정값 메뉴 

Unity Editor > Window > Google Play Games > Setup > Android Configuration

 

 

B. Property 입력

 a. Resource Definition : 

  Google Console >>> Game Service >>>"리더보드 and 업적" 생성 >>>리더보드, 업적 둘중에 아무거나 선택하여 리소스 받기 >>> Android 항목 복사하여 붙혀넣기

 

  ** 게임 변경사항이 발생 하였으니, 게임 재출시 必

 

 

 b. Web App Client ID ( Optional ) : 

     6."Google 클라우드 플랫폼"에서 사용자 인증정보 생성하기

           B. OAuth 클라이언트 ID ( 안드로이드) 사용자 인증 정보 만들기

               C.OAuth 클라이언트 ID ( 웹 ) 인증서 생성               에서 생성한 Client ID 복사 붙혀넣기

 

 

 

8.앱 빌드 후 확인


Scene In Build 목록에

 

1_MenuScene

2_GameplayScene

3_FinaleScene 씬을 차례대로 추가합니다.

 

 

 

 

 

 

다음 글에서는 각 기능 ( 로그인 등 )에 대한 스크립트을 분석하려 합니다.

 I will see the script(login...or anything. ).I'll see how the features work in the next article.

 

 

+ 2020-04-08

- 구글 플레이 콘솔, 앱 내부테스트 배포 오류

> 아래 오류 캡처

 

> 해결방안, 안드로이드 공식홈

https://developer.android.com/distribute/best-practices/develop/64-bit

 

64비트 아키텍처 지원  |  Google Play  |  Android Developers

2019년 8월 1일부터 Google Play에 게시된 앱에서는 64비트 아키텍처를 지원해야 합니다. 64비트 CPU는 사용자에게 더 빠르고 풍부한 환경을 제공합니다. 앱의 64비트 버전을 추가하면 성능이 향상되고 향후 혁신이 가능해지며 64비트 전용 하드웨어가 장착된 기기를 설정할 수 있습니다. 이 가이드에서는 32비트 앱에서 64비트 기기를 지원할 준비가 되었는지 확인하기 위해 현재 취할 수 있는 단계를 설명합니다. 앱 액세스하기 앱에서 라이브러리나

developer.android.com

 

 

+ 2020-04-08

[GPGS 로그인 안됨]

> 구글 플레이 콘솔 -> 게임 서비스 -> 게임 세부 정보 -> 저장된 게임 사용 -> 게임 출시

 

 

+2020-04-12

[게임서비스 앱 출시 후에 GPGS 로그인 안됨]

* 원인 : 명확하지 않음

* 조치 : 구글 콘솔앱과 연결된 구글 Apis 프로젝트의 SHA-1 인증서 디지털 지문 변경

기존 "업로드 인증서"에서 "앱 서명 인증서"로 변경

1. 구글 콘솔 > 해당앱 >  출시관리 > 앱서명 >  앱 서명 인증서 > SHA1지문을 복사

2. 구글 APIs > 앱과 연결된 프로젝트 > API 및 서비스 > 사용자 인증 정보 >  OAuth2.0 클라이언트 ID >  안드로이드 클라이언트 > 수정 > SHA-1 인증서 디지털 지문 > 복사한 SHA-1값 으로 변경 > 저장 

 

반응형

+ Recent posts