토큰 로그인 이후 씬전환 동작을 하지 않습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.7.0
  • 프로젝트명 : Shooter_Project
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

LoginUIManager.cs

public void TouchStart()
    {
        loadingObject.SetActive(true);
        ServerManager.GetInstance().BackendTokenLogin((bool result, string error) =>
        {
//성공시 이후 동작 안됨, 실패시에는 동작 확인
            Dispatcher.Current.BeginInvoke(() =>
            {
                if (result)
                {
                    ChangeLobbyScene();
                    Debug.Log("토큰 로그인 성공");
                    return;
                }
                loadingObject.SetActive(false); // 로딩 종료
                if (!error.Equals(string.Empty)) // 서버에 접속 불가능 에러
                {
                    errorText.text = "Failed to get User Data\n\n" + error;
                    errorObject.SetActive(true);
                    Debug.Log("토큰 로그인 실패");
                    return;
                }

                Debug.Log("로그인 필요 : 로그인 창 실행");
                touchStart.SetActive(false);
                customLoginObject.SetActive(true);
            });
        });
    }

ServerManager.cs
public void BackendTokenLogin(Action<bool, string> func)
    {
        Enqueue(Backend.BMember.LoginWithTheBackendToken, callback =>
        {
            if (callback.IsSuccess())
            {
                Debug.Log("Success Token Login");
                loginSuccessFunc = func;
                OnPrevBackendAuthorized();
                return;
            }

            Debug.Log("Failed Token Login\n" + callback.ToString());
            func(false, string.Empty);
        });
    }

뒤끝 예제 게임 코드를 참고하고있습니다. 19.4.40f1 유니티 사용중이며, 위에 코드에 적혀있듯 TouchStart()에서 BackendTokenLogin()이 호출 되고 result 값이 false일 경우 정상 작동하나, true일 경우 작동하지 않고 있습니다.

이전 저와 동일 현상을 겪은 분이 질문글을 남겨주셔 답변을 토대로 SendQue에 담을 경우에는 정상 동작하지만, 혹시 위 로직에서 SendQue에 담지 않고 동작시킬 수 있는 방법이 있을까요?

적어도 어디부분이 문제가 있는지에 대해 알고 싶습니다.

참고로, SendqueMgr적용 및 SendQueue.Poll() 호출 등 모두 되어있는 상태입니다.

안녕하세요 개발자님.

공유해주신 로직에서는 크게 문제가 될만한 부분은 찾아내지 못했습니다. 성공시에만 문제가 발생하는 것으로 보아 성공 로직을 다시 한번 점검해주시고, SendQueue는 콜백이 메인쓰레드에서 이루어지기에 디스페처를 사용하지 않아도 되는 점 참고해주시기 바랍니다.

  1. LoginWithTheBackendToken에서 성공일 때 Debug.Log(“Success Token Login”); 가 출력되는지 확인해주시기 바랍니다. 만약 출력이 될 경우 loginSuccessFunc 혹은 OnPrevBackendAutgorized()함수 내에서 오류가 발생할 가능성이 큽니다.
  2. 뒤끝 함수는 3가지로 동기, 비동기, SendQueue가 존재합니다. SendQueue를 사용하지 않는다면 아래와 같이 비동기 함수로 이용이 가능합니다.
    다만 비동기를 사용하기 전에 메인쓰레드에서 활용할 것인지에 대한 여부를 설정하기 위해 Backend.Initalize에서 true/false를 설정하고 true일 경우에는 Update에 Backend.AsyncPoll()을 호출해야합니다.
Backend.BMember.LoginWithTheBackendToken( callback =>
        {
            if (callback.IsSuccess())
            {
                Debug.Log("Success Token Login");
                loginSuccessFunc = func;
                OnPrevBackendAuthorized();
                return;
            }

            Debug.Log("Failed Token Login\n" + callback.ToString());
            func(false, string.Empty);
        });

OnPrevBackendAutgorized에서 문제가 발생하는 것 확인 했습니다. 답변 감사드립니다.