저번 글에서는 뒤끝과 유니티를 연동하는 방법에 대해 알아봤습니다.
연동은 완료되었지만 뒤끝과 데이터를 주고받기 위해선 뒤끝에 로그인이 되어야합니다.
이번 글에서는 로그인을 할 수 있도록 진행해보겠습니다.
로그인 구현하기
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 |