본문 바로가기
Project/<team Not Same> 꿈의 왕국 : 영원한 보금자리

[GPGS] 프로젝트에 로그인 연동하기1

by 왹져박사 2023. 4. 23.
728x90

~현재 진행 상황

 

업적 만들기

 

리소스 보기 선택
Android(XML)항목 복사
프로젝트의 Window-Google Play Games-Setup-Android setup.. 클릭

 

위 공간에 붙여넣기 후 Setup

 

Keystore Manager 만들기

 

Player Settings-Publishing Settings-Keystore Manager...
생성!

 

 

 

 

연동 로그인

 

GitHub - playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity

 

GitHub - playgameservices/play-games-plugin-for-unity: Google 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

의 Sign in 참고

 

관리할 GPGSManager 만들기

GPGSManager

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

public class GPGSManager
{
    private static GPGSManager instance = new GPGSManager();

    public GPGSManager() { }

    public static GPGSManager GetInstance()
    {
        return GPGSManager.instance;
    }

    public System.Action onAuthenticate;
    public void Authenticate()
    {
        //인증
        PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status)
    {
        if (status == SignInStatus.Success)
        {
            // Continue with Play Games Services
            Debug.Log(PlayGamesPlatform.Instance.localUser.id);
            Debug.Log(PlayGamesPlatform.Instance.localUser.image);
            Debug.Log(PlayGamesPlatform.Instance.localUser.state);
            Debug.Log(PlayGamesPlatform.Instance.localUser.userName);

            App.instance.StartCoroutine(this.CoLoadImage());

            this.onAuthenticate();

        }
        else
        {
            // Disable your integration with Play Games Services or show a login button
            // to ask users to sign-in. Clicking it should call
            // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
        }
    }
    private IEnumerator CoLoadImage()
    {
        yield return new WaitUntil(() => PlayGamesPlatform.Instance.localUser.image != null);

        Debug.LogFormat("Social.localUser.image: {0}", PlayGamesPlatform.Instance.localUser.image);

        Texture2D texture = PlayGamesPlatform.Instance.localUser.image;

        Debug.LogFormat("{0}x{1}", texture.width, texture.height);

        App.instance.imgPlayer.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
    }

}

 

App

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

public class App : MonoBehaviour
{
    public static App instance;
    public TMP_Text txtVersion;
    public Image imgPlayer;

    private void Awake()
    {
        instance = this;
    }
    void Start()
    {
        Debug.Log("App Start");
        this.txtVersion.text = string.Format("version {0}", Application.version);

        GPGSManager.GetInstance().onAuthenticate = () =>
        {
            Debug.Log("Authenticate!");

            //뉴비 업적 달성
            PlayGamesPlatform.Instance.ReportProgress(GPGSIds.achievement_, 100.0f, (bool success) => {
                // handle success or failure
                Debug.LogFormat("achievement : {0}, result : {1}", GPGSIds.achievement_, success);
            });
        };
        GPGSManager.GetInstance().Authenticate();
    }
}

 

 

번들로 빌드하기 

Build Settings-Build App Bundle (Google Play) 체크 후 Build

 

내부 테스트를 위한 테스터 등록

테스트-내부 테스트-테스터

테스트 버전 등록

테스트-내부 테스트-출시-새 버전 만들기

 

*오류1

앱이 Android 13(API 33) 이상을 타겟팅합니다. Play Console에서 광고 ID 사용을 선언해야 합니다. 

->선언 작성

선언 작성
선언 저장

 

AndroidManifest에 권한 포함하기

<application> 위에

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

AndroidManifest는 Project-Plugins-Android-GooglePlayGamesManifest.androidlib에 존재

 

*오류2

이 버전은 Google Play 64비트 요구사항을 준수하지 않습니다. 

Player Settings-Build Settigns-Configuration

Target Architectures의 ARM64 체크

 

빌드 후 재업로드

테스터-테스트 참여 방법-웹에서 참여-링크복사

NOX에서 링크 입력

ACCEPT INVITE

 

설치 완료

 

728x90