말씀하신대로 순서를 바꿨습니다. 로그인후에 닉네임체크를 하고 닉네임이 없을시에만 닉네임설정창을 열게했는데 같은문제가 발생합니다. 문제는 계속 플레이스토어에 올린걸 다운받았을때만 발생한다는겁니다…
그래서 gpgs로그인부터 어떻게 했는지 코드를 가지고왔습니다.
확인좀 부탁드려도 될까요?
#if UNITY_ANDROID
using GooglePlayGames;
using GooglePlayGames.BasicApi;
#endif
using BackEnd;
using UnityEngine;
using System.Collections;
public class GPGS_SignIn : MonoBehaviour
{
#if UNITY_ANDROID
public void GPGS_LogIn()
{ PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication); }//11.01 로그인코드
public void GetAccessCode()
{
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code => {
//토큰 발행요청
Backend.BMember.GetGPGS2AccessToken(code, googleCallback =>
{
string accessToken = “”;
if (googleCallback.IsSuccess())//발행요청 성공시
{
accessToken = googleCallback.GetReturnValuetoJSON()["access_token"].ToString();
//Debug.Log("hash: " + Backend.Utils.GetGoogleHash());//해쉬키
}
else
{
switch (googleCallback.GetStatusCode().ToString())
{
case "401":
Managers.UI.ShowErrorPopupUI("아이디 혹은 비밀번호를 다시 확인해주세요.", 2f);
Debug.Log("존재하지않는 아이디, 잘못된 비밀번호");
break;
case "403":
Managers.UI.ShowErrorPopupUI("Get Out of the Here!!", 2f);
Debug.Log("차단당한유저입니다.");
break;
case "410":
Managers.UI.ShowErrorPopupUI("탈퇴 진행중...", 2f);
Debug.Log("탈퇴진행중");
break;
default:
Managers.UI.ShowErrorPopupUI("로그인정보를 입력해주세요.", 2f);
Debug.Log(googleCallback.GetMessage());
break;
}
}
//뒤끝 로그인시킴
Backend.BMember.AuthorizeFederation(accessToken, FederationType.GPGS2, callback =>
{
Debug.Log("뒤끝 로그인 성공했습니다. " + callback);
Debug.Log("hash: " + Backend.Utils.GetGoogleHash());
//닉네임체크
if (Backend.UserNickName == string.Empty)
{
Debug.Log("닉네임이 설정되어있지않음");
Managers.UI.ShowPopupUI<NickNameCheck>(subname: "MainLobby");
}
else
{
Debug.Log("닉네임이 설정되어있음");
Managers.Scene.LoadScene(Define.Scene.MainLobby);
}
});
});
});
}
public void CheckUserAuthenticate()
{
BackendReturnObject BRO = Backend.BMember.CheckUserInBackend("federationToken", FederationType.GPGS2);
if(BRO.GetStatusCode() == "200")
{
Debug.Log("가입중인 계정입니다.");
}
else
{
Managers.UI.ShowErrorPopupUI("가입된 계정이 아닙니다.", 3f);
Debug.Log("가입된 계정이 아닙니다.");
}
}
internal void ProcessAuthentication(SignInStatus status)
{
if (status == SignInStatus.Success)
{
// Continue with Play Games Services
string displayName = PlayGamesPlatform.Instance.GetUserDisplayName();
string userId = PlayGamesPlatform.Instance.GetUserId();
Debug.Log("로그인 성공 : " + displayName + "/" + userId);
GetAccessCode();//성공시 뒤끝으로 로그인시킴
}
else
{
Managers.UI.ShowErrorPopupUI("로그인 실패", 3f);
// 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);
Debug.Log("로그인 실패");
}
}
#endif
private IEnumerator LoginProcess() //시간을 세는 코루틴
{
float time = 0;
while (true)
{
time += Time.deltaTime;
Debug.Log($"로그인중입니다...{time:F1}");
yield return null;
}
}
} 코드 전문입니다.
GPGS_Login() ← 이함수가 구글 로그인버튼을 눌렀을때의 반응입니다.
혹시 저코드에서 문제가 발생하는 부분을 알수있을까요?