뒤끝

[Unity] 뒤끝 2 (로그인)

때류기 2024. 1. 16. 13:56

저번 글에서는 뒤끝과 유니티를 연동하는 방법에 대해 알아봤습니다.

연동은 완료되었지만 뒤끝과 데이터를 주고받기 위해선 뒤끝에 로그인이 되어야합니다.

이번 글에서는 로그인을 할 수 있도록 진행해보겠습니다.

 

 

 

로그인 구현하기

 

1. Canvas를 생성 후 아래와 같이 UI를 넣어줍니다.

 

 

 

 

2. 스크립트를 하나 생성하고 아래와 같이 코드를 입력합니다.

using BackEnd;
using UnityEngine;
using UnityEngine.UI;


public class LoginManager : MonoBehaviour
{
    [Tooltip("아이디 입력 필드")]
    [SerializeField] private InputField _idInput;

    [Tooltip("비밀번호 입력 필드")]
    [SerializeField] private InputField _passwordInput;


    [Tooltip("로그인 버튼")]
    [SerializeField] private Button _loginButton;

    [Tooltip("회원가입 버튼")]
    [SerializeField] private Button _signupButton;


    [Tooltip("로그인 성공 텍스트")]
    [SerializeField] private Text _loginText;


    void Start()
    {
        _loginText.gameObject.SetActive(false);

        //버튼 클릭 이벤트 추가
        _loginButton.onClick.AddListener(Login);
        _signupButton.onClick.AddListener(SignUp);
    }


    /// <summary>로그인 함수</summary>
    private void Login()
    {
        string id = _idInput.text;
        string pw = _passwordInput.text;

        Debug.Log("로그인을 요청합니다.");
        BackendReturnObject bro = Backend.BMember.CustomLogin(id, pw);

        if (bro.IsSuccess())
        {
            Debug.Log("로그인이 성공했습니다. : " + bro);
            HideLoginUI();
        }
        else
        {
            Debug.LogError("로그인이 실패했습니다. : " + bro);
        }
    }


    /// <summary>회원가입 함수</summary>
    private void SignUp()
    {
        string id = _idInput.text;
        string pw = _passwordInput.text;

        Debug.Log("회원가입을 요청합니다.");     
        BackendReturnObject bro = Backend.BMember.CustomSignUp(id, pw);

        if (bro.IsSuccess())
        {
            Debug.Log("회원가입에 성공했습니다. : " + bro);
        }
        else
        {
            Debug.LogError("회원가입에 실패했습니다. : " + bro);
        }
    }


    /// <summary>로그인 성공시 로그인 관련 ui들을 비활성화 시키는 함수</summary>
    private void HideLoginUI()
    {
        _idInput.gameObject.SetActive(false);
        _passwordInput.gameObject.SetActive(false);
        _loginButton.gameObject.SetActive(false);
        _signupButton.gameObject.SetActive(false);

        _loginText.gameObject.SetActive(true);
    }
}

 

 

 

 

3. Hierarchy에 빈 오브젝트를 생성 후 아까 생성한 캔버스에 추가해줍니다.

   그 후 아래와 같이 인스펙터창을 채워줍니다.

 

 

 

 

4. 저번 글에서 작성했던 BackendManager를 수정합니다.

using BackEnd;
using UnityEngine;


public class BackendManager : MonoBehaviour
{
    private static BackendManager _instance = null;

    public static BackendManager Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new BackendManager();
            }

            return _instance;
        }
    }

    private void Awake()
    {
        //BackendReturnObject는 통신의 결과로 넘어오는 값을 저장하는 클래스
        //뒤끝 SKD를 이용하여 서버로 요청한 모든 기능은 BackendReturnObject클래스 형태로 리턴

        //SDK를 초기화 후 BackendReturnObject클래스 리턴
        BackendReturnObject bro = Backend.Initialize(true);

        //초기화가 성공했을 경우?
        if (bro.IsSuccess())
        {
            //성공일 경우 statusCode 204 Success
            Debug.LogFormat("초기화 성공: {0}", bro); 
        }
        else 
        {
            // 실패일 경우 statusCode 400대 에러 발생 
            Debug.LogFormat("초기화 실패: {0}", bro);
        }
    }


    private void Update()
    {
        //SDK가 초기화되어있을때
        if(Backend.IsInitialized)
        {
            //뒤끝 비동기 함수 사용 시, 메인쓰레드에서 콜백을 처리해주는 Dispatch을 실행
            Backend.AsyncPoll();
        }
    }
}

 

 

 

 

여기까지 진행하시면 로그인, 회원가입 기능 완성입니다.!

기능 실행

 

회원가입 된 유저 정보

'뒤끝' 카테고리의 다른 글

[Unity]뒤끝 4 (서버 데이터 불러오기)  (0) 2024.02.29
[Unity] 뒤끝 3 (데이터 저장)  (0) 2024.01.18
[Unity] 뒤끝 1 (연동)  (0) 2024.01.14