당신은 주제를 찾고 있습니까 “유니티 구글 로그인 – 유니티 GPGS 구글 플레이 게임 서비스의 모든것 – 2021.11월“? 다음 카테고리의 웹사이트 https://you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.maxfit.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 고라니TV – 게임개발 채널 이(가) 작성한 기사에는 조회수 6,665회 및 좋아요 182개 개의 좋아요가 있습니다.
유니티 구글 로그인 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 유니티 GPGS 구글 플레이 게임 서비스의 모든것 – 2021.11월 – 유니티 구글 로그인 주제에 대한 세부정보를 참조하세요
유니티 GPGS 2021.11월 기준으로 최신화하여 통합했습니다
GPGSBinder 클래스에는 로그인, 클라우드 저장, 업적, 리더보드, 이벤트
기능이 포함되어 있습니다
잘 사용하시기 바랍니다
# 타임라인
0:00 목차
1:46 유니티 프로젝트 생성과 셋팅
5:08 Google Play Game Plugin 패키지 임포트
6:26 aab로 빌드
8:13 구글 개발자 콘솔 앱 만들기
8:58 aab 빌드 파일 업로드
9:46 Play 게임 서비스 게임서버 하나와 클라이언트 2개 생성
15:45 Cloud Platform에서 활성화
16:06 리소스, Oauth 복사 프로젝트에 붙혀넣기
16:51 External Dependency Manager 로그 끄기
17:53 GPGSBinder 스크립트 넣고 로그인 회원가입 빌드앤 런
21:03 클라우드 저장(개발자 콘솔에서도 설정), 업적, 리더보드, 이벤트 셋팅
25:45 스크립트 설명
28:38 모바일 기기 실행
32:28 안될때 다시한번 확인할 사항
34:08 마무리
# 스크립트 보기
https://goraniunity2d.blogspot.com/2021/11/gpgs-202111.html
유니티 구글 로그인 주제에 대한 자세한 내용은 여기를 참조하세요.
Unity 구글 Play 게임즈 서비스 설정(구글 로그인 요즘 느낌으로 …
모바일 개발을 하다 보면 어쩔 수 없이 거치는 구글 플레이 연동. 도무지 정리를 안 할 수가 없어 정리 시작.. 먼저 Project Settings.
Source: young-94.tistory.com
Date Published: 6/26/2021
View: 7705
바뀐 플레이 콘솔에서 유니티로 구글로그인 사용하기
바뀐 플레이 콘솔에서 유니티로 구글로그인 사용하기. 에페아 2021. 6. 22. 05:17. 저번글에선 인앱을 살펴봤으니 이번엔 구글로그인을 만들어보자.
Source: gimchicchige-mukgoshipda-1223.tistory.com
Date Published: 6/26/2021
View: 9585
Unity + Firebase Google 로그인 구현하기
유니티의 파이어베이스 연동과 구글 로그인까지 구현하며 했던 삽질을 … 된 가장 큰 이유는 Unity WebView로 구현된 로그인창이 계속 Google Auth …
Source: nidelva.tistory.com
Date Published: 9/10/2022
View: 3482
Google 로그인과 Unity를 사용하여 인증하기
Google 로그인을 앱에 통합하여 사용자가 Google 계정으로 Firebase 인증을 … Firebase Unity SDK(특히 FirebaseAuth.unitypackage )를 Unity …
Source: firebase.google.com
Date Published: 8/3/2021
View: 9845
[Unity] 유니티 구글 플레이 게임 서비스 연동 ( 로그인 하기 )
구글 플레이에서 다운로드한 게임을 보면 등록된 구글 계정으로 로그인해서 랭킹을 확인하거나 업적을 달성하는 것을 볼 수 있습니다.
Source: scvtwo.tistory.com
Date Published: 4/11/2022
View: 460
[Unity/Theory] 구글 플레이와 연동하여 기능을 구현하자! (로그인)
유니티 프로젝트를 Google Play Console에 등록하기까지 다뤄보았다. 이번에는 실제로 게임을 구글 플레이에 로그인 해보도록 하자.
Source: onionisdelicious.tistory.com
Date Published: 6/14/2021
View: 6194
Unity + Firebase + GooglePlayGameService 로그인 연동하기
구글 프로젝트 생성 및 Gpgs프로젝트 생성. 우선 구글 개발자 콘솔에서, 해당 게임 프로젝트를 생성한다. 그 담에 앱 무결성을 보면 아직, apk나 앱번들을 …
Source: shakddoo.tistory.com
Date Published: 4/29/2022
View: 2972
[유니티] 구글 플레이 연동하기 – 개발뚱땅
연동할 유니티 프로젝트로 이동합니다. … 이제 유니티용 gpgs api를 받아와야합니다. … userName; else LogText.text = “구글 로그인 실패”; …
Source: dev-gold.tistory.com
Date Published: 9/29/2021
View: 1994
뒤끝서버 + 유니티 #3 구글 로그인 1탄 – 게임 제작, 리뷰 등
오늘 공부할 내용 뒤끝서버 + 유니티로 구글 로그인을 위한 설정하는 방법에 대해 배웁니다. 내용이 너무 많아서 강좌를 2개로 나눠놨어요.
Source: mrbinggrae.tistory.com
Date Published: 7/2/2022
View: 6140
Unity에서 Google Play 게임 로그인을 사용한 PlayFab 인증 설정
이 자습서는 Unity SDK로 빌드된 PlayFab 게임에 Google Play 게임 로그인을 성공적으로 추가하는 단계를 보여 줍니다. 사실, 모든 단계를 알고 나면 …
Source: docs.microsoft.com
Date Published: 6/5/2021
View: 3252
주제와 관련된 이미지 유니티 구글 로그인
주제와 관련된 더 많은 사진을 참조하십시오 유니티 GPGS 구글 플레이 게임 서비스의 모든것 – 2021.11월. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
![유니티 GPGS 구글 플레이 게임 서비스의 모든것 - 2021.11월](https://i.ytimg.com/vi/aCG5nixgyVw/maxresdefault.jpg)
주제에 대한 기사 평가 유니티 구글 로그인
- Author: 고라니TV – 게임개발 채널
- Views: 조회수 6,665회
- Likes: 좋아요 182개
- Date Published: 최초 공개: 2021. 11. 8.
- Video Url link: https://www.youtube.com/watch?v=aCG5nixgyVw
Unity 구글 Play 게임즈 서비스 설정(구글 로그인 요즘 느낌으로 다가)
반응형
모바일 개발을 하다 보면 어쩔 수 없이 거치는 구글 플레이 연동
도무지 정리를 안 할 수가 없어 정리 시작..
먼저 Project Settings
1. Package Name 설정
2. ARM64가 체크되어있어야 한다 ( * Scripting Backend가 Il2CPP여야 체크 가능)
[ 체크 안 하면 출시할 때 구글이 해달라고 할 것임 ]3. Keystore하나 만들어 주자
[ * Keystore Manager클릭 후 만들어 주면 됨, 나머진 알아서 잘 입력하면 됨(Alias는 별명이라 회사명 소문자로 해도 될 듯 + Password는 걍 동일하게 함 + Vaildity의 경우 Keystore의 효력을 얼마나 할지 정하는 느낌 + 뭐 나머진 알아서… (아 본인의 경우 Keystore는 그냥 프로젝트에 포함시킴 괜히 어디 뒀다가 까먹을 바엔…) ]이제 구글 플레이 게임즈 서비스에 필요한 Package를 받아야 함
https://github.com/playgameservices/play-games-plugin-for-unity
요기서 받으면 됨 + 설명도 나름 있긴 있음
요렇게 버전 확인 후 압축 풀고 current-build에 있는 패키지 설치하면 됨
설치 후 알아서 Force Resolve도 해줄 것이고 Plugins – Android에 뭐가 많이 생겼을 것임
* Releases에 들어가서 가장 최신의 버전을 받으면 되긴 하다만.. 본인의 경우 v11.01을 다운받았을 때 이상하게 Force Resolve도 제대로 됐음에도 분명 내가 success를 봤음에도 불구하고 몇몇 Plugins이 제대로 설치가 되지 않아서 몇몇 메서드는 작동하고 몇몇 메서드는 GooglePlayGames의 namespace에 없어서 작동하지 않는 미친 불상사가 발생했고 이유를 찾다 찾다 걍 시간 날림 -> 애매하다 싶으면 버전을 그냥 낮춰 받아도 큰 문제는 없음 => 본인은 v10.14로 사용 중
이제 Google Play Console에서 설정 시작
* 먼저 본인의 개발자 계정이 필요 -> Google Play Console 가입 후 25달러 지불하면 쭉! 사용 가능!
일단 앱 만들기로 앱을 하나 만들어 줘야 하는데 그 위에 보이는 앱 거부됨은 그냥 .. 그냥 내가 빠꾸 먹은 거니까.. 넘어..가.. (쫄지 말고 어려울 것 없이 하란 거 체크하고 만들면 됨)
일단 위처럼 만드는 게 목표라고 보면 됨
Play 게임즈 서비스에서 설정을 클릭하면 위와 같은 화면이 나올 것인데 이미 Google API를 사용한다면야 ‘네’를 체크하고 뭐 알아서 하면 되는데 처음이니 아니오 체크 후 만들어 주면 됨
그러면
이렇게 뜰 것이고 체크가 안된 부분들을 채워줄 것임
* 그전에
자동으로 생성된 Google Cloud Platform의 이름이 영 맘에 안 드니 속성 수정을 누른 뒤 표기 이름을 프로젝트에 맞게 변경(영어로)하는 게 좋음 ( 위 이 앱은 어쩌구 저쩌구는 이미 본인이 만들었던 거라 뜨는 거니 가볍게 무시)
이제 Google Cloud Platform에서 보기를 통해 Google Cloud Platform에 들어가고 Play 게임즈 설정에서 봤던 해야 할 리스트들을 순서대로 진행하면 됨
1. OAuth 동의 화면을 클릭하여 만들어 줘야 함(외부로)
세상 귀찮게 입력해야 할 게 많지만 걍 * 표기된 부분만 하고 넘어감
* 그 뒤는 뭐 할 것 없이 저장 후 계속 누르다 보면 끝남..
이제 사용자 인증 정보를 만들어 줄 것임 (2개 만들 것임)
OAuth 클라이언트 ID를 클릭 후
Android 체크하고 이름 정하고 (2개 만들 거니까 헷갈리지 않도록 잘..)
패키지는 Project Settings에서 받아오고
인증서 지문의 경우
Google Play Console – 설정 – 앱 무결성에서 확인 가능
* 인증서 지문의 경우 앱 서명 키 인증서, 업로드 키 인증서로 2가지가 존재하는데 앱 서명 키 인증서의 경우 Google Play Console에 올린 aab를(내부 테스트든 공게 테스트든 프로덕션이든 뭐든) 구글 플레이에서 다운로드할 때 적용되고 업로드 키 인증서의 경우 apk로 뽑아서 테스트할 때 사용하면 됨 => 그래서 OAuth 클라이언트 ID를 2개 만드는 것, 뭐 사실 apk로 안 할 거면 굳이 2개 안 만들어도….
=> 어쨌든 두 개의 인증서 지문을 사용하여 2개의 OAuth 클라이언트 ID를 만들면 됨
이제 다시 Google Play Console로 돌아오면
설정의 아래쪽을 보면 사용자 인증 정보 추가 버튼이 활성화될 것이고
유형 Android 선택 후 나머지 기입하고 OAuth 클라이언트를 Google Cloud Platform에서 열심히 만든 것을 사용하면 됨
* 이 사용자 인증 정보의 경우도 Google Cloud Platform에서 사용자 인증 정보를 2개 만들었을 경우 2개 만들면 되는데 apk로 확인 안 하고 Google Play Console에 aab로 올려 테스트할 경우에는 역시 2개 만들 필요는 없음
이제 Unity에서 세팅을 적용!
Android setup 진입 후
두 부분을 채워 줄 것인데
Resources Definition은
요 친구를 통해 확인하고
Cliend ID는 아래 만든 사용자 인증 정보를 클릭하여 OAuth 클라이언트의 클라이언트 ID부분을 가져와도 되고 Google Cloud Platform에서 만든 사용자 인증 정보의 클라이언트 ID를 가져와도 됨 어차피 Google Play Console에서 앱 무결성 – 앱서명 에서 사용한 인증서 지문을 통해 만들어진 애들이라 다 같음
이제 검토 및 게시 클릭 후 나머지 간단한 세팅 해주면 끝
(* 아 그 해야 할 사항 들에서 Play 게임즈 서비스 SDK를 프로덕션 APK에 추가하여 API 사용의 경우 aab로 빌드 한 뒤 내부 테스트든 프로덕션으로든 뭐로든지 Google Play Console에 올리면 알아서 됨)
그 로그인 코드의 경우 널리고 널렸지만서도
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using GooglePlayGames; public class GoogleTest : MonoBehaviour { public TMP_Text _TMP_Google = null; private void Start() { PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); Login(); } void Login() { if (PlayGamesPlatform.Instance.localUser.authenticated == false) { Social.localUser.Authenticate((bool success) => { if (success) _TMP_Google.text = $”{Social.localUser.id}
{Social.localUser.userName}”; else _TMP_Google.text = “Failed”; }); } } public void LogOut() { ((PlayGamesPlatform)Social.Active).SignOut(); } }
이런 식으로 할 수 있고 고유의 User ID + Name 등을 받을 수 있으니 추후 서버 연동 시 사용하면 될 듯
반응형
바뀐 플레이 콘솔에서 유니티로 구글로그인 사용하기
저번글에선 인앱을 살펴봤으니 이번엔 구글로그인을 만들어보자
https://github.com/playgameservices/play-games-plugin-for-unity
먼저 여기에 들어가서 다운을 받아준다
여기에 들어있는 패키지 파일을 프로젝트에 넣어주기 위한 것.
다운을 다 받으면 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
이 글을 가지고 확인해봐도 되지만, 더 간단한 방법은
플레이콘솔 메뉴 위쪽에서 설정 – 앱 무결성 탭에 들어가면 볼 수 있다
그럼 생성이 완료된다
생성을 끝냈으면 다시 플레이 콘솔로 돌아와서
메뉴를 아래로 내리다보면 나오는 리더보드 탭에 들어가서 아무거나 하나 생성해준다
생성했으면 오른쪽 상단에 리소스 보기 를 눌렀을 때 나오는 소스코드를 복사한다
이제 유니티에 들어가서 셋팅을 해줘야한다
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 넣고 앱 뽑아서 돌려보면 로그인이 잘 되는걸 볼 수 있다
반응형
Unity + Firebase Google 로그인 구현하기
니델바, Firebase 써 봤어요?
음, 아니. 분명 대학다닐 시절 언젠가 DB서버로 한 번 활용한 적이 있었을 것이다. 구글 모바일 플랫폼으로 굉장히 자주 쓰인다 들어는 봤지만 이렇게 빨리 경험하게 될 줄은. 유니티의 파이어베이스 연동과 구글 로그인까지 구현하며 했던 삽질을 기록해 둔다.
사실 이 프로젝트에는 이미 로그인시스템이 구현되어 있었다. 여타 앱에서 사용하는 페북, 구글, 애플, 그리고 본사 계정 로그인 방식까지 지원하는. 다만 이번에 프로젝트를 파이어베이스로 이전하게 된 가장 큰 이유는 Unity WebView로 구현된 로그인창이 계속 Google Auth Token을 못 받아온다는 문제가 있어서인것 같았다. DontDestroyOnLoad에 걸어둔 Singleton의 Instance가 자꾸 초기화가 된다나 뭐라나. 겸사겸사 더 좋은 플랫폼으로 이사도 할 겸, 주니어인 나에게 한번 구현해보라 시킨 것. 실패해도 프로젝트 진행엔 별 타격이 없을테니 말이다.
사실 문제가 하나 더 있었다. 단순 유니티와 파이어베이스의 연동은 구글에게 물어봐도 대답을 잘 해준다. 어렵게 없을거라 생각했다. 위에서 말했던 Google Auth Token을 받아오는 그 과정이 문제 였다. 이것을 무슨 수로 따냐 하니, 대부분의 사람들은 Google GamePlay Service를 이용했다. 아니, 나는 Google GamePlay가 아니라 단순 Google E-Mail 로그인을 원했다고! 그것마져 별도의 Activity를 사용하는 안드로이드 와 다르게 IOS엔 적용조차 불가능했다. 그래서 했다. 삽질을..
다시 한 번 적지만 이 글은 Google Play Console을 사용하는것이 아닌, 단순 Google 계정을 통한 연동에 관한 글이다.
1. Unity Project에서 Keystore 생성, SHA-1 인증서 지문 추출
기존 프로젝트라면 이미 Keystore쯤은 가지고 있었을 것이다. 있다면 그것을 쓰면 되고, 나는 새 프로젝트의 테스트 용도차 처음부터 세팅을 해야하니 Keystore를 가져오기로 한다.
Player Settings – Publishing Settings – Keystore 파트에서 Keystore를 생성한다.
keystore의 생성, 그리고 파일 저장 위치를 설정 후 Password를 설정한다.
Alias 부분은 이 키의 식별자인데 프로젝트 이름으로 해도 좋고 아무렇게나 적는다.
Certificate는 이 인증에 사용할 개인정보를 입력하는데, 이 정보는 앱에 당연히 표시되지 않지만 apk 파일 안엔 일부로 들어간다고 한다. 나의 경우는 생략했다.
keystore가 정상적으로 만들어줬다면, cmd창에서 keystore 파일이 있는 위치로 디렉터리를 이동 후
keytool -list -v -keystore [keystore이름] 을 입력한다. SHA1 그리고 SHA256 인증서 fingerprint를 확인할 수 있다.
이 인증서 지문은 파이어베이스 프로젝트 세팅이나 API등 여러 곳에서 이용되니, 보안을 지켜 적절한 곳에 메모해두도록 하자.
아 참, keytool 명령어를 찾을 수 없는 경우엔 ‘시스템 환경 변수’의 path에 사용중인 jdk/bin 폴더를 추가해주면 된다.
2. Firebase Console 프로젝트 설정 (https://console.firebase.google.com/)
파이어베이스 콘솔로 접속해, 새로운 프로젝트를 생성한다.
이 Cloud System에 적당한 이름을 짓고
Google Analytics를 이용할 것인지 묻는다. 나중 api 설정에서도 다시 바꿀 수 있으므로, 나는 사용하지 않고 다음.
이예에~!!
Firebase Console – Project Settings에서
앱을 추가! 내 경우는 Android를 먼저 세팅했다.
Android Package Name, 그리고 앱 이름을 입력한 후 등록
구성파일 다운로드는 현재 Console에서의 프로젝트 설정이나 api값이 바뀌면 다시 다운로드해서 넣어줘야하기에 지금은 패스한다. 나머지도 지금은 패스하고, 앱 설정을 완료한다.
앱 설정이 완료되면, 위와같은 창에서 아까 기록해둔 SHA 인증서 지문을 추가한다. 나는 SHA1만 써놨는데, SHA256도 필요할지는 잘 모르겠다. 여기까지 하면, Firebase Console의 세팅은 끝이 난다.
3. Google Cloud Playform API 세팅 (https://console.cloud.google.com/)
파이어베이스 프로젝트 세팅이 되면, 해당 프로젝트의 ID와 번호를 그대로 승계받아 Google Cloud Playform의 프로젝트에서 찾을 수 있다.
만약 프로젝트가 보이지 않는다면 아까 파이어베이스에 만들어둔 프로젝트 이름으로 검색해 직접 등록한다
해당 프로젝트의 API – 사용자 인증 정보(Credential) 파트에서 OAuth Web Client에 대한 정보를 찾을 수 있다. 클릭하여 클라이언트 ID를 메모해 두자.
4. Unity Setting
몇 가지 준비물이 필요하다.
google-signin-plugin-1.0.4.unitypackage 0.52MB
본디 인증 Token을 얻는 과정에서 따로 서버와 통신하는 Script를 짜거나, 별도의 Activity를 여는 과정에서 삽질이 많을텐데 역시나 누가 만들어둔 오픈소스가 존재했다. 받아서 Import 시켜주자
그리고 Firebase 페이지에서 SDK를 준비한다. 유니티 2017버전 이상이라면 dotnet4 폴더의 FirebaseAuth.unitypackage를 Import 시켜준다. 만약 인증이 아니라 다른 기능이 필요하다면, 동봉된 별도의 unitypackage를 차곡차곡 심어주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 using System ; using System .Collections.Generic; using System .Linq; using System .Threading.Tasks; using Firebase; using Firebase.Auth; using Google; using UnityEngine; using UnityEngine.UI; public class GoogleSignInDemo : MonoBehaviour { public Text infoText; public string webClientId = “
” ; private FirebaseAuth auth; private GoogleSignInConfiguration configuration; private void Awake() { configuration = new GoogleSignInConfiguration { WebClientId = webClientId, RequestEmail = true , RequestIdToken = true }; CheckFirebaseDependencies(); } private void CheckFirebaseDependencies() { FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task = > { if (task.IsCompleted) { if (task.Result = = DependencyStatus.Available) auth = FirebaseAuth.DefaultInstance; else AddToInformation( “Could not resolve all Firebase dependencies: ” + task.Result.ToString()); } else { AddToInformation( “Dependency check was not completed. Error : ” + task. Exception .Message); } }); } public void SignInWithGoogle() { OnSignIn(); } public void SignOutFromGoogle() { OnSignOut(); } private void OnSignIn() { GoogleSignIn.Configuration = configuration; GoogleSignIn.Configuration.UseGameSignIn = false ; GoogleSignIn.Configuration.RequestIdToken = true ; AddToInformation( “Calling SignIn” ); GoogleSignIn.DefaultInstance.SignIn().ContinueWith(OnAuthenticationFinished); } private void OnSignOut() { AddToInformation( “Calling SignOut” ); GoogleSignIn.DefaultInstance.SignOut(); } public void OnDisconnect() { AddToInformation( “Calling Disconnect” ); GoogleSignIn.DefaultInstance.Disconnect(); } internal void OnAuthenticationFinished(Task < GoogleSignInUser > task) { if (task.IsFaulted) { using (IEnumerator < Exception > enumerator = task. Exception .InnerExceptions.GetEnumerator()) { if (enumerator.MoveNext()) { GoogleSignIn.SignInException error = (GoogleSignIn.SignInException)enumerator.Current; AddToInformation( “Got Error: ” + error.Status + ” ” + error.Message); } else { AddToInformation( “Got Unexpected Exception?!?” + task. Exception ); } } } else if (task.IsCanceled) { AddToInformation( “Canceled” ); } else { AddToInformation( “Welcome: ” + task.Result.DisplayName + “!” ); AddToInformation( “Email = ” + task.Result.Email); AddToInformation( “Google ID Token = ” + task.Result.IdToken); AddToInformation( “Email = ” + task.Result.Email); SignInWithGoogleOnFirebase(task.Result.IdToken); } } private void SignInWithGoogleOnFirebase( string idToken) { Credential credential = GoogleAuthProvider.GetCredential(idToken, null ); auth.SignInWithCredentialAsync(credential).ContinueWith(task = > { AggregateException ex = task. Exception ; if (ex ! = null ) { if (ex.InnerExceptions[ 0 ] is FirebaseException inner & & (inner.ErrorCode ! = 0 )) AddToInformation( ” Error code = ” + inner.ErrorCode + ” Message = ” + inner.Message); } else { AddToInformation( “Sign In Successful.” ); } }); } public void OnSignInSilently() { GoogleSignIn.Configuration = configuration; GoogleSignIn.Configuration.UseGameSignIn = false ; GoogleSignIn.Configuration.RequestIdToken = true ; AddToInformation( “Calling SignIn Silently” ); GoogleSignIn.DefaultInstance.SignInSilently().ContinueWith(OnAuthenticationFinished); } public void OnGamesSignIn() { GoogleSignIn.Configuration = configuration; GoogleSignIn.Configuration.UseGameSignIn = true ; GoogleSignIn.Configuration.RequestIdToken = false ; AddToInformation( “Calling Games SignIn” ); GoogleSignIn.DefaultInstance.SignIn().ContinueWith(OnAuthenticationFinished); } private void AddToInformation( string str) { infoText.text + = ”
” + str; } } Colored by Color Scripter cs
DemoScript를 작성한다. 메소드별로 굵직굵직하게 OOP로 나뉘었으니 SignIn, Out, 그리고 Disconnect 정도를 할당해 쓰면 되게끔 만들었다. 그리고 추후 GooglePlay와의 연동 확장성을 생각해서 GoogleSignIn.Configuration.UseGameSignIn 변수를 사용해서도 하나 만들었으니 나중에 이용할 수 있도록 했다.
그렇게 대충 Canvas에 쭉쭉 긋고 프로토타입 빌드 후, 앱 내에서 테스트 진행.
구글 ID Token값을 정상적으로 받아오고
파이어베이스 Authentication에서도 정상적으로 로그인 기록이 남는걸 확인할 수 있다.
이렇게 구현 완료!!!!
—–추가
위에서 사용한 그 오픈소스의 경우, 별도의 구글 로그인창을 띄우기 위해 AndroidJavaObject의 Activity를 활용한다.
IOS의 경우는 그대로 zero를 return해버리는데, 이에 대한 대응이 되어있는지 몰라 직접 물어봤다. 지금은 재택근무 중이라 ios빌드테스트를 위한 환경도 셋팅되어있지 않아 답답한데.. ㅠㅠ
돌아온 개발자의 답변
답변을 받았다. ‘직접 테스트해보셈. 아마 될거임. 나 사과폰도 없어 ㅋ’
ios쪽에서 Activity를 별도로 만들수 있는 방법을 알아보고, 진전이 있다면 다음 포스팅에서.
—————-
참고
[Unity 이론] Google + Firebase 로그인 (https://inyongs.tistory.com/35)Firebase Authentication in unity with Google Provider (https://youtu.be/pqJLHWFGhH4)
Google 로그인과 Unity를 사용하여 인증하기
Google 로그인을 앱에 통합하여 사용자가 Google 계정으로 Firebase 인증을 받도록 설정할 수 있습니다.
시작하기 전에
Firebase 인증을 사용하려면 먼저 다음 작업이 필요합니다.
Unity 프로젝트를 등록하고 Firebase를 사용하도록 구성합니다. Unity 프로젝트에서 현재 Firebase를 사용하고 있다면 이미 등록되어 Firebase용으로 구성된 것입니다. Unity 프로젝트가 없는 경우 샘플 앱을 다운로드할 수 있습니다.
Firebase Unity SDK(특히 FirebaseAuth.unitypackage )를 Unity 프로젝트에 추가합니다.
초기 설정 작업에 관한 자세한 안내는 Unity 프로젝트에 Firebase 추가를 참조하세요.
Unity 프로젝트에 Firebase를 추가할 때 Firebase Console 및 열려 있는 Unity 프로젝트 모두에서 작업을 수행해야 합니다. 예를 들어 Console에서 Firebase 구성 파일을 다운로드한 후 이 파일을 Unity 프로젝트로 이동하는 작업이 필요합니다.
Firebase.Auth.FirebaseAuth 클래스 액세스
FirebaseAuth
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
Firebase 인증
Android 및 iOS+ 안내에 따라 Google 로그인의 ID 토큰을 가져옵니다. 사용자가 정상적으로 로그인한 후에 액세스 토큰을 Firebase 사용자 인증 정보로 교환하고 Firebase 사용자 인증 정보를 사용해 Firebase에 인증합니다. Firebase.Auth.Credential credential = Firebase.Auth.GoogleAuthProvider.GetCredential(googleIdToken, googleAccessToken); auth.SignInWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError(“SignInWithCredentialAsync was canceled.”); return; } if (task.IsFaulted) { Debug.LogError(“SignInWithCredentialAsync encountered an error: ” + task.Exception); return; } Firebase.Auth.FirebaseUser newUser = task.Result; Debug.LogFormat(“User signed in successfully: {0} ({1})”, newUser.DisplayName, newUser.UserId); });
다음 단계
클래스는 모든 API 호출에 대한 게이트웨이입니다. FirebaseAuth.DefaultInstance 를 통해 액세스할 수 있습니다.
사용자가 처음으로 로그인하면 신규 사용자 계정이 생성되고 사용자가 로그인할 때 사용한 사용자 인증 정보(사용자 이름과 비밀번호, 전화번호 또는 인증 제공업체 정보)에 연결됩니다. 이 신규 계정은 Firebase 프로젝트에 저장되며 사용자의 로그인 방법과 무관하게 프로젝트 내의 모든 앱에서 사용자 본인 확인에 사용할 수 있습니다.
앱의 Firebase.Auth.FirebaseUser 객체에서 사용자의 기본 프로필 정보를 가져올 수 있습니다. Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // The user’s Id, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, if you // have one; use User.TokenAsync() instead. string uid = user.UserId; }
Firebase 실시간 데이터베이스와 Cloud Storage 보안 규칙의 auth 변수에서 로그인한 사용자의 고유 사용자 ID를 가져온 후 이 ID를 통해 사용자가 액세스할 수 있는 데이터를 관리할 수 있습니다.
인증 제공업체의 사용자 인증 정보를 기존 사용자 계정에 연결하면 사용자가 여러 인증 제공업체를 통해 앱에 로그인할 수 있습니다.
사용자를 로그아웃시키려면 SignOut() 을 호출합니다.
auth.SignOut();
[Unity] 유니티 구글 플레이 게임 서비스 연동 ( 로그인 하기 )
반응형
안녕하세요.
이 글은 이전에 작성한 [Unity] 유니티 구글 플레이 게임 서비스(GPGS) 연동 후 앱 등록을 진행한 것을 기반으로 합니다.
구글 플레이에서 다운로드한 게임을 보면 등록된 구글 계정으로 로그인해서 랭킹을 확인하거나 업적을 달성하는 것을 볼 수 있습니다..
일단 구글 계정을 로그인해야 랭킹이나 업적을 동기화시킬 수 있기 때문에, 로그인부터 알아보겠습니다.
구글 플레이 콘솔 사이트에 접속합니다.
https://play.google.com/apps/publish/?hl=ko
그리고 개발자 구글 계정으로 로그인합니다.
1. 구글 플레이 게임 서비스 설정
게임 서비스를 누른 후 GOOGLE PLAY 게임 서비스 설정을 누릅니다.
게임 이름과 게임 종류를 설정한 후 계속을 누릅니다.
그리고 설명과 고해상도 아이콘, 그래픽 이미지를 넣고 다음을 누릅니다.
2. OAuth 2.0 클라이언트 ID 생성
구글 플레이 게임 서비스를 인증하려면 게임에 OAuth 2.0 클라이언트 ID가 필요합니다.
연결된 앱을 누른 후 ANDROID 버튼을 누릅니다.
패키지 이름을 설정한 후 “저장하고 계속” 버튼을 누릅니다.
다음 “지금 앱 승인” 버튼 클릭.
그리고 시작 키를 눌러서 명령 프로토콜(cmd)을 실행시킵니다.
여기서 jre 설치된 폴더 경로로 이동합니다.
“cd C:\Program Files\Java\jre1.8.0_231\bin” 를 입력합니다. jre버전에 따라 폴더명으로 들어갑니다.
그리고 “keytool -list -keystore D:\unity\QuitTest\user.keystore(해당 앱의 keystore 경로)”를 입력합니다.
그리고 SHA1 키를 복사합니다.
그리고 서명 인증서 지문 부분에 붙여 넣고 확인을 누릅니다.
연결이 완료되었습니다.
클라이언트 ID 항목을 복사해놓습니다.
그 후 목록으로 돌아가기 버튼을 누릅니다.
등록할 게임의 유니티 프로젝트를 실행시킵니다.
그리고 Window-Google Play Games-Setup-Android setup… 을 누릅니다.
빨간 부분에 아까 복사한 클라이언트 ID를 넣습니다.
그리고 다시 구글 플레이 콘솔 페이지로 돌아갑니다.
리더보드 이름을 입력하고 저장 버튼을 입력합니다.
리소스 받기 버튼을 입력합니다.
코드를 모두 복사합니다.
그리고 유니티로 돌아갑니다.
코드를 복사한 후 Setup 버튼을 누릅니다.
이제 유니티에 실제로 적용을 해보겠습니다.
간단하게 로그인 / 로그아웃 버튼을 만들어서 연동되는 것을 확인하겠습니다.
그리고 구글 로그인을 담당하는 스크립트를 작성해보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 using System .Collections; using System .Collections.Generic; using UnityEngine; // Text UI 사용 using UnityEngine.UI; // 구글 플레이 연동 using GooglePlayGames; using GooglePlayGames.BasicApi; public class GooglePlayManager : MonoBehaviour { bool bWait = false ; public Text text; void Awake() { PlayGamesPlatform.InitializeInstance( new PlayGamesClientConfiguration.Builder().Build()); PlayGamesPlatform.DebugLogEnabled = true ; PlayGamesPlatform.Activate(); text.text = “no Login” ; } void Start() { } void Update() { } public void OnLogin() { if ( ! Social.localUser.authenticated) { Social.localUser.Authenticate(( bool bSuccess) = > { if (bSuccess) { Debug.Log( “Success : ” + Social.localUser.userName); text.text = Social.localUser.userName; } else { Debug.Log( “Fall” ); text.text = “Fail” ; } }); } } public void OnLogOut() { ((PlayGamesPlatform)Social.Active).SignOut(); text.text = “Logout” ; } } Colored by Color Scripter cs
로그인 버튼을 눌렀을 때
로그아웃 버튼을 눌렀을 때
그리고 apk로 폰이나 애뮬레이터에서 테스트할 때에는 꼭 테스터를 추가해야 합니다.
테스트가 끝난 후
게임 출시가 가능합니다.
로그인에는 지금 의미가 없으므로 리더보드 작성 후 출시해보도록 하겠습니다.
출시 후 문제
연결 중까지만 뜨고, 로그인이 되지 않는 문제가 발생했습니다.
해결 방법
여러 사이트를 검색하면서 알게 되었습니다.
플레이 콘솔의 해당 업플로 들어가서, 출시 관리 – 앱 서명으로 들어갑니다.
그 후 앱 서명 인증서 지문을 복사합니다.
게임 세브 정보로 들어가서 GplayTest로 들어갑니다.
그러면 API 및 서비스로 들어가게 되는데, 수정을 누릅니다.
이전에 복사한 앱 서명 인증서 지문을 넣습니다.
그리고 저장합니다.
그 후 앱을 실행해서, 로그인이 가능한지 확인합니다.
그 외 문제가 있다면, 제가 참조한 사이트를 확인해보시는것도 좋을 것 같습니다.
https://github.com/playgameservices/play-games-plugin-for-unity/issues/1800#issuecomment-310877125
다음”[Unity] 유니티 구글 플레이 게임 서비스 연동 ( 업적과 리더보드 )”편으로 이어집니다.
읽어주셔서 감사합니다~! 수정할 부분이나 질문은 댓글 달아주세요!
반응형
Theory] 구글 플레이와 연동하여 기능을 구현하자! (로그인)
!!! NOTICE !!!
이 글은 유니티의 이론을 다루고 있습니다!
학습한 정보를 제가 기억하고 추후에도 사용해두기 위해 기록해둔 내용입니다!
이 점 유의하고 봐주세요!
지난 글에서는
유니티 프로젝트를 Google Play Console에 등록하기까지
다뤄보았다.
이번에는 실제로
게임을 구글 플레이에 로그인 해보도록 하자.
구글 플레이 로그인하기
지난번 글에서 등록했던 게임의 세부정보를 다시 들어가보면
세부정보 최하단에서 OAuth2 클라이언트 ID를 얻을 수 있습니다.
이번에 이 클라이언트 ID를 사용할 터이니 복사해두세요.
왼쪽 메뉴에서 리더보드를 클릭해주세요.
리더보드 메뉴
유니티에서 사용할 리소스가 필요한데
이를 위해서 리더보드를 추가해줄 것입니다.
리더보드 추가 버튼을 눌러주세요.
리더보드 생성 화면
지금은 간단하게 리더보드를 생성만 해주고
리소스만 사용할 것입니다.
리더보드에 사용할 이름을 입력하고 저장해주세요.
필자의 경우, leaderBoard 라고 입력했습니다.
생성된 리더보드
그럼 다음과 같은 화면을 볼 수 있습니다.
우리는 리소스를 위해서 리더보드를 생성했습니다.
리소스 받기 버튼을 클릭해주세요.
리소스
해당 코드가 유니티 프로젝트에 사용하게 될 리소스 코드입니다.
이후에 사용할 터이니 복사해두세요.
단계를 진행하기 전에,
UnityPackage 하나를 설치하겠습니다.
Google Play 스토어에 로그인하기 위해
사용하게 될 에셋으로, 아래 링크에서 다운받을 수 있습니다.
https://github.com/playgameservices/play-games-plugin-for-unity
깃허브 링크에서 current-build 폴더 내부에
GooglePlayGamesPlugin-0.10.11.unitypackage 파일을 다운받아
본인의 프로젝트에 임포트해주세요.
임포트가 끝났다면 해당 에셋을 Setup 해주겠습니다.
아래 사진을 참조하여 Android Setup 기능을 실행해주세요.
Android Setup
여기에 우리가 초반에 복사해두었던
리소스 코드와 클라이언트 ID를 사용할 것입니다.
1번에 리소스 코드,
2번에 클라이언트 ID를 붙여넣기 해주세요.
이후 Setup 버튼을 클릭해주시면
성공적으로 구글 플레이에 연동할 값들을 입력해줄 수 있습니다.
이제 실제로 로그인이 되는지 확인해보겠습니다.
이번에 테스트를 위해서 버튼을 두개 준비해두었습니다.
하나는 로그인을 실행하는 버튼,
하나는 로그아웃을 실행하는 버튼입니다.
마지막으로 로그인이 됬는지 여부를 확인하기 위해
Text 도 하나 소환하였지만,
귀찮아서 콘솔로 확인하겠습니다.
실제 앱에서는 상단에 Play Login 됬다는 팝업이 등장합니다.
이제 스크립트를 작성해봅시다.
Google Play API를 사용하려면
GooglePlayGames 를 참조해야 합니다.
using GooglePlayGames; using GooglePlayGames.BasicApi;
로그인을 하기에 앞서
PlayGamesPlatform 인스턴스를 새로 만들어 활성화 해주어야 합니다.
이는 새로 게임을 실행했을때
Google Play API를 사용하기 위한 여러저런 데이터를
초기화해주는 역할입니다.
//초기화 함수. 인스턴스를 만드는 역할. PlayGamesPlatform.InitializeInstance(new PlayGamesClientConfiguration.Builder().Build()); //디버그용 변수 PlayGamesPlatform.DebugLogEnabled = true; //구글 관련 서비스 활성화. PlayGamesPlatform.Activate();
로그인을 하기 위해선
로컬에 연결된 계정이 인증되었는지 확인하고
안됬다면 인증 단계에 진입합니다.
if(!Social.localUser.authenticated) //현재 기기와 연결된 계정이 인증이 아직 안됬는가? { //계정 인증 Social.localUser.Authenticate((bool isSuccess) => { if(isSuccess) { Debug.Log(“인증 성공 -> ” + Social.localUser.userName); } else { Debug.Log(“인증 실패”); } } ); }
로그아웃을 하기 위해선
간단하게 SignOut() 으로 최근 연결된 계정의 로그아웃을 진행합니다.
//로그아웃 ((PlayGamesPlatform)Social.Active).SignOut();
아래는 코드 전체입니다.
using System.Collections; using System.Collections.Generic; using UnityEngine; using GooglePlayGames; using GooglePlayGames.BasicApi; public class GooglePlayLoginSample : MonoBehaviour { private void Awake() { //초기화 함수. 인스턴스를 만드는 역할. PlayGamesPlatform.InitializeInstance(new PlayGamesClientConfiguration.Builder().Build()); //디버그용 변수 PlayGamesPlatform.DebugLogEnabled = true; //구글 관련 서비스 활성화. PlayGamesPlatform.Activate(); } public void Do_Login() { if(!Social.localUser.authenticated) //현재 기기와 연결된 계정이 인증이 아직 안됬는가? { //계정 인증 Social.localUser.Authenticate((bool isSuccess) => { if(isSuccess) { Debug.Log(“인증 성공 -> ” + Social.localUser.userName); } else { Debug.Log(“인증 실패”); } } ); } } public void Do_Logout() { //로그아웃 ((PlayGamesPlatform)Social.Active).SignOut(); } }
이후 버튼에 함수를 연결해서 실제로 작동되는지 확인해보겠습니다.
유니티 에디터에서 실행하니 인증에 실패했습니다.
아마 직접적으로 연결한 구글 계정이 없어서 그런 것 같습니다.
그럼 테스트를 위해서 APK 파일로 빌드해
제 핸드폰에서 실행해보겠습니다만, 그 이전에
테스트용 계정으로 제 계정을 등록하겠습니다.
Google Play Console로 돌아옵니다.
왼쪽에 테스트 메뉴에 들어가면
테스트 메뉴를 확인할 수 있습니다.
이곳에서 테스트용 계정을 등록하고
해당 계정으로 테스트를 해볼 수 있습니다.
다만, 게임 출시 이후에 해당 테스트 계정을
출시판에 사용할 수 없습니다.
만약 사용하고 싶다면, 테스터에서 제거해주어야 합니다.
그럼 APK로 빌드 후, 스마트폰에 설치해 실행해보겠습니다.
참고로 테스트한 기기는 갤럭시 S10 5G 입니다.
로그인을 시도해본 결과,ㅇ
성공적으로 로그인을 할 수 있었습니다.
로그아웃을 누른 후에, 로그인을 다시 시도해본 결과,
로그인할 계정을 선택할 수 있도록 메뉴가 출력되었고,
선택한 이후로는 성곡적으로 로그인이 가능했습니다.
Unity + Firebase + GooglePlayGameService 로그인 연동하기
매번 앱을 출시 할 때 마다, 헷갈리게 되고, 문제가 생기면 제법 시간을 많이 잡아 먹어, 정리하게 됐다.
1. Unity Firebase세팅
github.com/google/mechahamster
여기서 sdk를 다운 받고,
FirebaseAnalytics.unitypackage
FirebaseAuth.unitypackage
이 두개만 임포트 한다(나머지 기능은 안쓰고 있어서..).
여기서 중요한 건, Firebase 먼저 세팅하는게, 플러그인 들끼리 꼬이지 않는다. Gpgs를 먼저 하지말고, Firebase를 먼저 import하도록 하자.
2. Unity GooglePlayGameService (gpgs)
github.com/playgameservices/play-games-plugin-for-unity
마찬가지로 위 사이트에서, gpgs sdk를 다운받고, 프로젝트에 import하자. 나머지 세팅은 나중에 하도록 하자. 우선 import까지만.
3. 구글 프로젝트 생성 및 Gpgs프로젝트 생성
우선 구글 개발자 콘솔에서, 해당 게임 프로젝트를 생성한다. 그 담에 앱 무결성을 보면 아직, apk나 앱번들을 올리지 않아 뜨지 않을 텐데, 테스토용 앱번들을 비공개 프로젝트로 만들어 올리면, 앱 서명키가 뜬다.
위 그림과 같이, 두개의 앱 서명키가 있는데, 앱 서명 키는 실제 프로덕션 출시 후, 마켓에서 다운받은 클라이언트에서 쓰이는 키 값이고, 업로드 키 인증서는 테스트 용이라고 생각하면 된다.
Gpgs프로젝트를 생성한다.
프로젝트 생성 후, 사용자 인증 정보 만들기로 들어간다. 들어가면 OAuth동의 화면을 만들어야 한다고 한다. OAuth동의화면을 클릭하면, 구글 클라우드 플랫폼 페이지로 넘어간다.
Gpgs프로젝트를 생성하면, 해당 프로젝트가 구글 클라우드 플랫폼에 자동 등록 된다. 나는 다른 프로젝트들도 많아, 헷갈리지 않게, 프로젝트 이름을 [rpg-client-gpgs]라고 변경해 뒀다. 안해도 되긴하는데, 나중에 헷갈리지 않게 미리 해주는게 좋을거다.
위 그림과 같이 OAuth를 만들고, 테스트를 앱 게시로 만든다. 그렇게 하면, 테스트 계정이 아니더라도, 정상적으로 구글플레이 접속 시 동의 화면이 뜬다. 안하면 테스트 계정만 동의화면이 뜨고, 나머지는 무한로딩에 걸린다.
2021/01/24 – [게임을 만들자/Unity] – Unity, Google Play Game Service 인증 무한 로딩 현상
이제 사용자 인증정보를 만들도록 하자.
위 그림과 같이, 클라우드 플랫폼 페이지 왼쪽에, 사용자 인증정보를 클릭하고, OAuth클라이언트 ID를 만들도록 하자.
서비스용, 테스트용 두개를 만들어야 하는데, 아까 위에서 말한 앱서명키 값이 필요하다. 각각 앱서명키를 넣어, 사용자 인증정보 2개를 만들도록 하자.
다 만들고 나면 위 그림과 같이 OAuth2.0클라이언트 ID가 두개 있을 것이다. 나는 이름을 [GPGS_RUNNING], [GPGS_TEST]라고 해 두었다. 다 했으면 다시, GPGS설정 페이지로 돌아가도록 하자.
사용자인정보를 두개 만들도록 하자. 마찬가지로, 서비스용, 테스트 용 두 개이다. OAuth클라이언트 선택창에 내가 만든 인증키가 뜰 것이다. 각각 만들면 된다.
여기까지하면 우선, 구글 플레이 게임 서비스는 끝이다. 다음은 파이어베이스 프로젝트를 생성하고, 연결하도록 하자.
4. Firebase프로젝트 생성 및 설정
Gpgs설정 -> 외부통합을 보면 Firebase추가 버튼이 있다. 누르도록 하자.
누르고 Firebase콘솔 페이지에 들어가면, 위와같이 자동으로 프로젝트가 생성 돼 있을 것이다.
생성 된 프로젝트에 들어가면, 위와같이 뜨는데, 동의하면 된다.
위 그림과 같이 Authentication-> sign in method에 들어가서, Google을 사용 설정됨으로 바꾸자.
사용 설정으로 바꾸고 안에 내용을 보면 위와 같이 웹클라이언트 ID와 비밀 번호가 생성 될 것이다.
구글 플라우드 플랫폼으로 가보자.
클라우드 플랫폼 페이지의 사용자 인증 정보 탭을 보면, 위와 같이 web client id가 생성된 것을 볼 수 있다. 처음에는 왼쪽 화면처럼 뜨는데, 몇 분 지나면 오른쪽 화면으로 뜨니, 몇 분 기다리도록 하자.
다시 Firebase페이지로 가도록 하자..
프로젝트 설정을 보면, sdk 설정 및 구성, 이라는 곳이 있다. 여기서 디지털 지문을 추가하도록 하자.
총 4개를 등록하는데, 아까 위에서 사용자 인증 정보를 등록했듯이, 앱 무결성 페이지에 있는, sha값을 모두 등록하면 된다.
서비스용 2개(sha-1, sha-256), 테스트용 2개(sha-1, sha-256) 총 4개이다.
4개 모두 추가 후, google-service.json을 다운 받아. Unity 프로젝트 폴더 -> Assets폴더 안에 넣도록 한다.
5. Unity 설정
이제 마무리 단계이다. Gpgs페이지로 가도록 하자.
리소르 보기를 눌러, 값들을 복사한다.
유니티에서 window->google play games -> setup -> android setup을 클릭해 창을 연다.
gpgs페이지에서 복사한 값을 붙여넣고, Client Id 값은, 클라우드 플랫폼 페이지에 자동으로 생성된(firebase에서 만들어진), web client id 값을 복사해 넣도록 하자.
마지막으로 Gpgs페이지 -> 게시 탭에 들어가 Gpgs 프로젝트를 게시하도록 하자. 게시가 안되면, 친절하게 해당페이지에 이유가 설명 돼 있을 것이다. 하라는 것을 모두하면, 게시가 정상적으로 된다.
진짜 마지막으로 코드를 살펴보도록 하자.
6. 로그인 스크립트.
public class GameCenterManager : MonoBehaviour { private FirebaseAuth auth; public string FireBaseId = string.Empty; public static GameCenterManager Instance = null; void Start() { m_saved_state = GoogleSavedFileState.GOOGLE_SAVED_STATE_NONE; PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder() // enables saving game progress. .EnableSavedGames() .RequestIdToken() .Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); auth = FirebaseAuth.DefaultInstance; Instance = this; } public void Login() { LogManager.Debug(“GameCenter Login”); if (!Social.localUser.authenticated) // 로그인 되어 있지 않다면 { Social.localUser.Authenticate(success => // 로그인 시도 { if (success) // 성공하면 { LogManager.Debug(“google game service Success”); //SystemMessageManager.Instance.AddMessage(“google game service Success”); StartCoroutine(TryFirebaseLogin()); // Firebase Login 시도 } else // 실패하면 { LogManager.Debug(“google game service Fail”); SystemMessageManager.Instance.AddMessage(“google game service Fail”); } }); } } public void TryGoogleLogout() { if (Social.localUser.authenticated) // 로그인 되어 있다면 { PlayGamesPlatform.Instance.SignOut(); // Google 로그아웃 auth.SignOut(); // Firebase 로그아웃 } } IEnumerator TryFirebaseLogin() { while (string.IsNullOrEmpty(((PlayGamesLocalUser)Social.localUser).GetIdToken())) yield return null; string idToken = ((PlayGamesLocalUser)Social.localUser).GetIdToken(); Credential credential = GoogleAuthProvider.GetCredential(idToken, null); auth.SignInWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { SystemMessageManager.Instance.AddMessage(“SignInWithCredentialAsync was canceled!!”); return; } if (task.IsFaulted) { SystemMessageManager.Instance.AddMessage(“SignInWithCredentialAsync encountered an error: ” + task.Exception); return; } Firebase.Auth.FirebaseUser newUser = task.Result; FireBaseId = newUser.UserId; //Debug.Log(“Success!”); //SystemMessageManager.Instance.AddMessage(“firebase Success!!”); }); } }
위와 같은 코드를 만들고, Login함수를 호출하면, 로그인 될 것이다.
[유니티] 구글 플레이 연동하기
1. 구글 플레이 콘솔로 이동합니다.
https://developer.android.com/distribute/console?hl=ko
이동해서 개발자 등록하고 등록 수수료를 결제합니다. (25달러 소요)
2. 연동할 유니티 프로젝트로 이동합니다.
3. 플랫폼을 안드로이드로 변경.
File-> Build Setting 으로 빌드 설정 창을 열어줍니다.
여기서 플랫폼을 안드로이드로 설정해주세요. 안드로이드 빌드 관련 설정은 다른 곳을 참조하세요.
그리고 Player Settings…를 눌러주세요.
여기서 회사명과 프로젝트 이름을 입력해주세요.
그리고 다시 Build Setting으로 돌아가서 빌드를 시도합니다.
빌드가 실패한경우 ndk sdk설정이 올바르게 되어있는지 설치되어있는지 확인해야합니다.
4.키 생성
빌드에 성공했다면, 어플을 인증하기 위한 키를 만들어야 합니다.
Publishing Settings로 가서 키스토어 매니저를 눌러주세요
다음과 같은 창이 뜹니다.
Create New->Anywhere를 누르시고 키를 저장할 위치를 고르세요.
키 저장 위치와 비밀번호를 기억하셔야합니다. 그리고 안전하게 보관해야합니다.
그리고 비밀번호와 Alias를 입력해줍니다. 비밀번호는 4개 같게 해주시고
Alias는 별명이라고 합니다. 적절히 입력해주세요
다 입력을 마쳤다면 addkey를 눌러주세요
다음과 같이 되도록 해주세요.
프로젝트를 껐다가 켜면 지워지는 경우가 있는데
빌드할 때 저장된 키를 찾아 설정해주시면 됩니다.
5. 구글 플레이 콘솔에 게임 프로젝트 추가
구글 플레이 콘솔의 게임서비스로 들어와서 새 게임을 추가해 주세요.
그럼 아래와 같이 뜨는데 이름과 게임 종류를 설정해주세요.
그러면 다음과 같은 프로젝트가 생성이 됩니다.
그리고 게임 세부정보 페이지에서
설명과 그래픽 저작물 아이콘, 이미지를 추가해주시고 저장을 누르세요.
이미지는 사이즈를 맞춰주셔야합니다.
그러면 게임 세부정보에 주황색 등이 초록색으로 변합니다.
그리고 연결된 앱으로 이동하시고 안드로이드를 눌러주세요.
그리고 유니티에서 빌드설정->플레이어 설정-> Other Settings에서 패키지 이름을 복사하시고 구글플레이 콘솔의 연결된 앱의 패키지 이름에 붙여넣습니다. 그리고 저장을 눌러주세요.
저장해주시면 다음과 같은 화면이 뜨는데 지금 앱 승인을 누르세요.
그리고 서명 인증서 지문은 아까 만든 앱 서명용 키에서 뽑아내야 합니다.
키가 저장된 위치로 이동해주세요. 탐색기 사용하시면 됩니다.
그리고 쉬프트키를 누르고 폴더에서 마우스 우클릭을 하세요.
그냥 우클릭 시에는 다음과 같이 뜨지만,
쉬프트 키를 누르고 우클릭하면
파워쉘 열기가 뜹니다.
저걸 클릭해주세요.
그럼 키가 있는 위치에서 파워쉘이 열리게 됩니다.
파워쉘에 다음과 같이 치세요
keytool -list -v -keystore <키파일이름>
그러면 비밀번호를 입력하라고 뜹니다. 키를 생성할 때 사용한 비밀번호를 입력하세요.
그럼 SHA1키를 볼 수 있는데 이 키를 구글 플레이 콘솔의 SHA1입력하는 곳에 넣어주세요.
확인을 누르게 되면 모든 곳에 초록등이 들어오게 됩니다.
6. gpgs 임포트
이제 유니티용 gpgs api를 받아와야합니다.
https://github.com/playgameservices/play-games-plugin-for-unity
으로 이동해서
릴리즈를 누르세요
그리고 최신 릴리즈의 압축파일을 받아줍니다.
적절한 곳에 압축을 푼뒤 열어보면 다음과 같습니다.
current-build폴더에 사용할 패키지가 들어 있습니다.
유니티에서 임포트해주시면 됩니다.
압축 푼 곳의 current-build폴더안의 패키지 파일을 임포트 하시면 됩니다.
임포트 하면 확인창이 뜨는데 확인 눌러주고 컴파일 작업이 끝나기 기다리세요.
끝나면 윈도우 창에 구글 플레이 게임즈 설정하는게 추가됩니다. 여기서 아래 화면과 같이 눌러주세요.
7.구글 플레이 게임즈 설정
그럼 다음과 같은 창이 나오는데 두개의 빈 공간을 모두 채워주어야합니다.
Resources Definition을 채워주기 위해서
구글 플레이 콘솔에서 업적페이지로 이동해주세요.
아무렇게나 입력하시고 저장을 눌러주세요.
그러면 리소스를 받기가 생깁니다.
누르시고 안드로이드 탭의 코드를 복사해주세요.
그리고 다시 유니티로 돌아가서 리소스 정의하는 곳에 붙여넣습니다.
그리고 다시 구글 플레이 콘솔로 돌아가서 연결된 앱을 눌러주세요.
앱을 누르면 OAuth2 클라이언트 아이디라고 되어있는 것이 있는데 이것을 복사해주세요.
그리고 유니티의 구글플레이 설정의 아래 부분을 채워주세요.
클라이언트 아이디를 붙여넣을 때 빈공간이 앞에 없도록 해주시고
다 작성하셨으면 Setup을 눌러주세요.
정상적으로 되었다면 완료 대화상자가 뜨게됩니다.
이제 설정은 다 되었습니다.
——————————————————————
로그인 구현은 추후 캡쳐하여 작성하겠습니다.
로그인을 위한 UI만들어 주고
로그인 버튼과 로그아웃 버튼, 결과 텍스트를 만들어주세요.
다음과 같이 스크립트를 작성하시고 스크립트 객체에 텍스트를 연걸해주고, 버튼에 로그인 로그아웃함수를 설정해주시고 안드로이드 빌드하셔서 누르면 로그인이 됩니다.
using GooglePlayGames; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class GoogleManager : MonoBehaviour { public Text LogText; // Start is called before the first frame update void Start() { PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); LogIn(); } public void LogIn() { Social.localUser.Authenticate((bool success) => { if (success) LogText.text = Social.localUser.id + ”
” + Social.localUser.userName; else LogText.text = “구글 로그인 실패”; }); } public void LogOut() { ((PlayGamesPlatform)Social.Active).SignOut(); LogText.text = “구글 로그아웃”; } // Update is called once per frame void Update() { } }
로그인 안되는 경우 테스터에 로그인용 구글 계정이 들어가있는지 확인해주세요.
사용자 인증 정보에 인증서 업로드 인증서 확인.
광고관련 블로그
https://you-rang.tistory.com/111
뒤끝서버 + 유니티 #3 구글 로그인 1탄
반응형
오늘 공부할 내용
뒤끝서버 + 유니티로 구글 로그인을 위한 설정하는 방법에 대해 배웁니다.
내용이 너무 많아서 강좌를 2개로 나눠놨어요.
뒤끝서버 홈페이지 – 게임 유저 관리 / 페더레이션 인증 예제 / GPGS 참고했습니다.
전제조건:
1. 유니티 프로젝트를 Android 로 변경하는 방법에 대해 알아야 합니다. 모르시는 분은 아래 링크를 눌러주세요.
( 2018 이전 버전 )
https://ozlael.tistory.com/78
2018 버전부터는 안드로이드 설정이 편해졌습니다.
자바는 위에 링크 참고
SDK 와 NDK 는 유니티 허브로 유니티를 설치할 때 안드로이드 관련 파일을 설치해주시면 됩니다.
2. 구글 개발자 콘솔에 가입되어 있어야 합니다. 가입 방법은 아래 링크를 눌러주세요.
https://honeyperl.tistory.com/182
구글 플레이 어플리케이션 등록
구글플레이 콘솔 -> 애플리케이션 만들기
애플레케이션 만들기를 한 뒤에 부가 정보들을 적어주세요.
제목, 설명, 이미지 넣는 거 전부! 콘텐츠 등급 등
가격 및 배포에서는 출시 국가를 대한민국 또는 모든국가로 설정합니다.
구글 플레이 게임즈 서비스 플러그인 임포트
https://github.com/playgameservices/play-games-plugin-for-unity 에서 구글플레이 게임즈 서비스 플러그인을 다운로드 받습니다. (유니티 용입니다.)
압축을 풀고 \play-games-plugin-for-unity-master\play-games-plugin-for-unity-master\current-build 경로로 가신 다음 GooglePlayGamesPlugin-0.9.62.unitypackage 파일을 더블클릭해서 유니티로 임포트합니다.
* 주의 *
페이스북 SDK 등 아래 이미지의 파일이 중복될 수 있습니다. 이럴 경우 높은 버전의 파일을 남겨두고 낮은 버전의 파일은 삭제하세요.
구글 게임 서비스 등록
게임서비스 누르고 새 게임 추가를 눌러주세요.
게임이름과 카테고리 적으세요.
연결된 앱에서 Android 를 눌러주세요.
패키지 이름을 클릭하면 구글 콘솔에서 등록한 어플리스트가 뜰 거에요. 거기서 테스트할 어플을 찾아서 클릭하세요.
저장하고 계속을 누르고 지금 앱 승인을 누르면 Androind OAuth 클라이언트 만들기 창이 뜰거에요.
확인 버튼을 눌러주세요.
유니티 에디터 설정
하단의 업적을 눌러서 업적을 만든 다음 리소스 받기를 클릭해주세요.
리소스 내보내기 창이 뜨면 소스코드를 복사합니다.
유니티로 돌아와서 상단 메뉴 Window/Google Play Games/Setup/Android setup 을 눌러주세요.
위에서 복사한 소스코드를 아래 이미지처럼 넣어주세요.
아직 Setup 버튼은 누르지 마세요. Web App Client ID 를 넣어야 합니다. 아래에서 진행합니다.
구글 API 콘솔 설정
모든 애플리케이션으로 이동하신 다음 테스트할 어플을 클릭하세요.
출시 관리 -> 앱 서명을 클릭하세요.
업로드 인증서를 복사합니다.
게임서비스를 클릭하고 게임세부정보에서 하단의 API 콘솔 프로젝트에서 하이퍼링크를 클릭하면 구글API 로 이동합니다.
사용자 인증 정보에서 “사용자 인증 정보 만들기/OAuth 클라이언트 ID” 를 클릭하세요.
Android 클릭하고 인증서 적는 곳에 업로드 인증서를 복사해서 붙여넣기 하세요.
업로드 인증서를 넣어야 APK 파일로 바로 설치하고 테스트를 할 수 있습니다.
업로드인증서가 등록되지 않으면 구글 플레이 스토어에서 다운로드 받아서 테스트해야 합니다.
다음은 웹 클라이언트 ID 작업을 할 겁니다.
사용자 인증정보에서 유형에 웹 어플리케이션이 있으신분은 그 녀석의 클라이언트 ID 를 복사하시면 되고
없으신 분은 사용자 인증 정보 만들기/OAuth 클라이언트 ID 만들기를 눌러주세요.
웹 애플리케이션을 선택하고 생성을 눌러주세요.
생성된 웹 애플리케이션의 클라이언트ID 를 복사한 다음 유니티로 돌아와서 Client Id 에 웹 애플리케이션 클라이언트 ID를 붙여넣기하고 SetUp 을 눌러주세요.
* 주의 *
제 Client ID 쓰지마세요. 강좌 만든 뒤에 어플 삭제 할거에요.
여기까지 하셨다면.. 이제 구글 로그인 토큰을 받을 준비가 된겁니다. 후우.. 힘들다.
혹시 모르니 게임서비스 에서 게임출시 까지 눌러주세요. (구글플레이 스토어에 출시 시키는 거 아니에요)
테스터 유저 추가시켜놓고요.
동영상 강좌
유튜브 : https://youtu.be/yMeqFkYrEPs
네이버 : https://tv.naver.com/v/8007578
반응형
Unity에서 Google Play 게임 로그인으로 PlayFab 인증 – PlayFab
목차
Unity에서 Google Play 게임 로그인을 사용한 PlayFab 인증 설정
아티클
06/29/2022
읽는 데 10분 걸림
기여자 1명
이 문서의 내용
자습서 비디오
참고 다음 비디오의 오디오 부분을 현재 사용할 수 없습니다. 새 녹음/녹화가 보류 중이며 나중에 바로 사용할 수 있습니다.
방법: Google 로그인(GPG) + PlayFab(Unity) 사용
이 자습서는 Unity SDK로 빌드된 PlayFab 게임에 Google Play 게임 로그인을 성공적으로 추가하는 단계를 보여 줍니다. 사실, 모든 단계를 알고 나면 매우 간단한 절차입니다.
그러나 필요한 모든 정보를 찾는 것은 까다로울 수 있습니다. 그래서 이 기능을 작동시키는 데 필요한 모든 단계에 집중하려고 합니다.
이 자습서 샘플을 여기에서 다운로드할 수도 있습니다.
필수 조건
시작하기
먼저 Google Play에 기본 사항을 설정하는 것부터 시작합니다. 이 작업을 수행하는 방법에 대한 몇 가지 좋은 가이드가 있으므로 쓸데없이 시간을 낭비하지 않을 수 있습니다.
Google Play 게임 구성
Google Play 게임 SDK와 함께 설치된 도구 집합에서 Google Play 게임을 구성할 수 있습니다. 다음 작업을 통해 이러한 도구에 액세스할 수 있습니다.
창 탭으로 이동합니다.
탭으로 이동합니다. Google Play 게임 을 선택합니다.
을 선택합니다. 설정 으로 이동합니다.
으로 이동합니다. 그런 다음 Android 설정에 액세스합니다.
아래의 제공된 예제와 같이 Google Play 개발자 콘솔에서 게임 서비스의 연결된 앱 섹션 애플리케이션 ID를 복사합니다.
그런 다음 아래와 같이 리소스 정의에 app_id 및 package_name 을 채웁니다.
[your app_id] [package name] 참고 앱을 연결할 때 생성되는 클라이언트 ID(이 이미지에 표시됨)가 잘못되었습니다!
Google 로그인이 PlayFab에서 작동하려면 웹 클라이언트 ID를 사용해야 합니다. 웹 클라이언트 ID를 얻으려면 서비스 및 API 섹션에 있는 Google Play 콘솔의 게임 서비스 섹션에서 웹 애플리케이션을 연결해야 합니다.
그럼 다음 웹 앱을 구성합니다.
여기에서, PlayFab에서 확인할 수 있는 API 엔드포인트를 입력합니다.
설정 에서 찾아봅니다.
에서 찾아봅니다. API 탭을 선택합니다.
탭을 선택합니다. API 엔드포인트 필드로 이동합니다.
시작 URL 필드에 이 엔드포인트 https://
.playfabapi.com 을 입력합니다. 필드에 이 엔드포인트 을 입력합니다. 저장 단추를 선택합니다.
단추를 선택합니다. 이렇게 하면 적절한 클라이언트 ID가 제공됩니다.
비밀 키를 얻으려면 API 콘솔 링크를 따라갑니다.
웹 애플리케이션 ( 유형 )을 선택합니다.
( )을 선택합니다. 클라이언트 암호가 맨 위에 있습니다.
중요 승인된 리디렉션 URI에 대한 기본 콜백을 변경해야 합니다. 적절한 URI는 https://oauth.playfab.com/oauth2/google 입니다. 이 단계를 수행하지 않으면 mismatch redirect_uri오류가 발생합니다.
PlayFab Google 로그인 설정
PlayFab에는 자체 Google 로그인 설정 프로세스가 있습니다. PlayFab 개발자 계정에서 이 작업을 수행할 수 있습니다. 계정이 없는 경우 무료 개발자 계정에 등록할 수 있습니다.
PlayFab에서 Google을 설정하는 방법:
대시보드에서 추가 기능 섹션으로 이동합니다.
섹션으로 이동합니다. Google 추가 기능 으로 이동합니다.
으로 이동합니다. 여기에서 추가 기능 설치 단추를 선택합니다.
이 양식에 입력해야 할 몇 가지 사항이 있습니다.
Google 앱 패키지 ID – Android 패키지의 이름입니다. 예를 들어, 샘플에서는 com.playfab.gpgexample 을 사용합니다.
– Android 패키지의 이름입니다. 예를 들어, 샘플에서는 을 사용합니다. Google 앱 라이선스 키 – 필수 필드이지만 Google 로그인과는 관련이 없습니다. 이 필드는 영수증 유효성 검사 API를 사용하여 영수증 유효성 검사를 설정하기 위한 필드입니다.
참고 이 라이선스 키는 서비스 및 API 섹션에 있는 Google 개발자 콘솔에서 얻을 수 있습니다. YOUR LICENSE KEY FOR THIS APPLICATION(이 애플리케이션용 라이선스 키)이라는 섹션을 찾습니다. Base64로 인코딩된 RSA 공개 키를 복사하여 이 필드에 붙여넣습니다.
Google OAuth 클라이언트 ID – Unity의 Google Play 게임 SDK 설정에서 사용한 웹 클라이언트 ID입니다.
– Unity의 설정에서 사용한 웹 클라이언트 ID입니다. Google OAuth 클라이언트 암호 – 마지막 단계에서 얻은 비밀 키입니다.
팁 반드시 설정을 저장하세요!
Unity 게임에 Google 로그인 추가
Google 로그인 기능을 작동시키는 데 필요한 코드는 아주 적습니다. 초기화 코드는 시작(또는 앱을 초기화하거나 시작하는 곳)에 입력할 코드입니다.
게임이나 앱의 아키텍처와 프레임워크에 따라 다른 위치에 있을 수 있습니다. 어떤 경우에도 아래 코드는 Google Play 게임을 초기화합니다.
참고 Google Play 게임 SDK를 사용할 수 있도록 Using 문을 잊어버리지 ‘않아야’ 합니다.**
// These using statements are required. using GooglePlayGames; using GooglePlayGames.BasicApi;
// The following grants profile access to the Google Play Games SDK. // Note: If you also want to capture the player’s Google email, be sure to add // .RequestEmail() to the PlayGamesClientConfiguration PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder() .AddOauthScope(“profile”) .RequestServerAuthCode(false) .Build(); PlayGamesPlatform.InitializeInstance(config); // recommended for debugging: PlayGamesPlatform.DebugLogEnabled = true; // Activate the Google Play Games platform PlayGamesPlatform.Activate();
아래에 제공된 예제에 있는 OnSignInButtonClicked() 함수인 다음 코드 집합은 이 예제의 UI에 있는 로그인 단추에 바인딩되어 있습니다.
private void OnSignInButtonClicked() { Social.localUser.Authenticate((bool success) => { if (success) { GoogleStatusText.text = “Google Signed In”; var serverAuthCode = PlayGamesPlatform.Instance.GetServerAuthCode(); Debug.Log(“Server Auth Code: ” + serverAuthCode); PlayFabClientAPI.LoginWithGoogleAccount(new LoginWithGoogleAccountRequest() { TitleId = PlayFabSettings.TitleId, ServerAuthCode = serverAuthCode, CreateAccount = true }, (result) => { GoogleStatusText.text = “Signed In as ” + result.PlayFabId; }, OnPlayFabError); } else { GoogleStatusText.text = “Google Failed to Authorize your login”; } }); }
OnSignInButtonClicked() 코드는 다소 복잡할 수 있으므로 다음과 같이 나눠서 정확히 무슨 일이 일어나는지 살펴보겠습니다.
먼저 Social.localUser.Authenticate 로 로그인합니다. 성공적으로 로그인할 수 있는 경우에는 부울 값이 반환됩니다. 앱에 테스트 계정을 추가하지 않은 경우 테스트할 때 항상 False가 반환됩니다.
로 로그인합니다. 성공적으로 로그인할 수 있는 경우에는 부울 값이 반환됩니다. 앱에 테스트 계정을 추가하지 않은 경우 테스트할 때 항상 False가 반환됩니다. 이 경우 중요한 단계는 테스트 계정을 추가하는 것입니다.
이 링크를 클릭하면 Google 애플리케이션에 테스터를 추가하는 방법이 표시됩니다.
참고 Google Play 게임 로그인 대화 상자가 팝업되도록 트리거합니다.
다음으로, 로그인이 성공했다면 PlayGamesPlatform.Instance.GetServerAuthCode 를 호출하여 변수에 저장합니다.
를 호출하여 변수에 저장합니다. 마지막으로 LoginWithGoogleAccount 를 호출하여 Google에서 방금 받은 AuthCode 를 ServerAuthCode 매개 변수로 전달합니다.
PlayFab에 로그인한 결과가 콜백됩니다. 이 시점에서 대시보드에 성공적으로 로그인되어야 합니다!
이 가이드가 도움이 되었기를 바랍니다. 질문이 있으시면 커뮤니티 포럼에서 자유롭게 질문하세요.
이 자습서 샘플을 여기에서 다운로드할 수 있습니다.
키워드에 대한 정보 유니티 구글 로그인
다음은 Bing에서 유니티 구글 로그인 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 유니티 GPGS 구글 플레이 게임 서비스의 모든것 – 2021.11월
- gpgs
- 구글플레이 게임 서비스
- 유니티
- 로그인
- 저장
- 클라우드 저장
- 업적
- 리더보드
- 이벤트
유니티 #GPGS #구글 #플레이 #게임 #서비스의 #모든것 #- #2021.11월
YouTube에서 유니티 구글 로그인 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 유니티 GPGS 구글 플레이 게임 서비스의 모든것 – 2021.11월 | 유니티 구글 로그인, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.