이전엔 기본적인 시작을 했고 이제 본격적으로 만들어 보는 단계로 먼저 로그인과 회원가입을 만들어 보자.
로그인 만들기

먼저 로그인을 하기위해 기본적인 아이디와 비밀번호 입력칸을 Input Field로 만들고 아래 로그인과 회원가입 Button을 만들었다.

Input Field를 그냥 두면 이렇게 비밀번호도 보여서 마음에 안든다.
그래서 인풋 필드에 Content Type를 PassWord로 바꿔준다.


이제 아까와 다르게 비밀번호가 *로 표시됨을 볼 수 있다.

UI를 만들었으면 이제 Hierarchy 에서 빈 GameObject를 만들어 준다.
이 오브젝트는 플레이팹 로그인과 회원가입 스크립트를 맡을 녀석이다.

이제 본격적으로 C# 스크립트를 만들어 보자.
먼저 플레이 팹을 쓰기 위해선 두가지 네임스페이스가 필요하다.
using PlayFab;
using PlayFab.ClientModels;
그리고 Input Field와 Button을 사용하기 위해서 UnityEngine.UI 역시 추가해준다.
using UnityEngine.UI;
이제 로그인 스크립트를 만들건데 먼저 입력한 값을 받을 Input Field를 가져온다.
public class PlayFabManager : MonoBehaviour
{
public InputField EmailInput;
public InputField PasswordInput;
}
로그인을 하는 코드는 보면서 분석해 본다.
public void LoginButton()
{
// 로그인에 필요한 정보 입력
var Email_request = new LoginWithEmailAddressRequest { Email = EmailInput.text, Password = PasswordInput.text };
// 값에 따라 로그인 실패 성공 이동
PlayFabClientAPI.LoginWithEmailAddress(Email_request, OnLoginSuccess, OnLoginFailure);
}
먼저 Email_Request 변수를 만들고 값을 넣어야 한다. LoginWithEmailAddressRequest 에는 Email, Password, CustomTags 등 여러가지 변수가 있는데 우리는 여기서 Email과 Password 두 가지를 사용했다.

var Email_request = new LoginWithEmailAddressRequest { Email = EmailInput.text, Password = PasswordInput.text };
Email과 Password를 각각 맞는 Input Field에 연결했다.
그리고 연결한 값을 LoginWithEmailAddress에 넣어준다.
PlayFabClientAPI.LoginWithEmailAddress(Email_request, OnLoginSuccess, OnLoginFailure);
LoginWithEmailAddress는 Email_request를 확인해서 로그인에 성공하면 OnLoginSuccess함수로 이동할 것이고 실패한다면 OnLoginFailure 함수로 이동할 것이다.
private void OnLoginSuccess(LoginResult result)
{
Debug.Log("로그인 성공");
}
private void OnLoginFailure(PlayFabError error)
{
Debug.LogWarning("로그인 실패");
}
이렇게 로그인 스크립트는 끝이다.
이제 로그인 버튼으로 가보자.

버튼에 OnClick이벤트를 추가하고 처음 만들어둔 PlayFabManager스크립트를 넣은 GameObject를 넣어준다.

그리고 No Function을 눌러 아까 만든 LoginButton을 넣어주면 버튼이 작동할 것이다.

로그인을 만드는건 여기까지다.
하지만, 여기서 로그인을 하기 위해선 아이디를 만들 필요가 있다.
이제 아이디를 만들기 위한 회원가입을 만들어 보자.
로그인 스크립트 전체
using System.Collections;
using System.Collections.Generic;
using System.Net.Mime;
using UnityEngine;
using UnityEngine.UI;
using PlayFab;
using PlayFab.ClientModels;
public class PlayFabManager : MonoBehaviour
{
public InputField EmailInput;
public InputField PasswordInput;
public void LoginButton()
{
// 로그인에 필요한 정보 입력
var Email_request = new LoginWithEmailAddressRequest { Email = EmailInput.text, Password = PasswordInput.text };
// 값에 따라 로그인 실패 성공 이동
PlayFabClientAPI.LoginWithEmailAddress(Email_request, OnLoginSuccess, OnLoginFailure);
}
private void OnLoginSuccess(LoginResult result)
{
Debug.Log("로그인 성공");
}
private void OnLoginFailure(PlayFabError error)
{
Debug.LogWarning("로그인 실패");
}
}
회원가입 만들기
회원가입은 로그인과 유사한 부분이 많아 설명을 줄이겠다.

먼저 회원가입에 필요한 정보를 입력받을 공간을 만들어준다.
public InputField EmailSignUp;
public InputField PasswordSignUp;
public InputField PasswordCheckSignUp;
public InputField NameSignUp;
var Email_request = new RegisterPlayFabUserRequest { Email = EmailSignUp.text, Password = PasswordSignUp.text, Username = NameSignUp.text };
PlayFabClientAPI.RegisterPlayFabUser (Email_request, OnRegisterSuccess, OnRegisterFailire);
private void OnRegisterSuccess(RegisterPlayFabUserResult result)
{
Debug.Log("회원가입 성공");
}
private void OnRegisterFailire(PlayFabError error)
{
Debug.LogWarning("회원가입 실패");
}
그리고 InputField 값을 입력받아 RegisterPlayFabUserRequest 에 넣어준다.
그리고 입력받은 값은 RegisterPlayFabUser가 체크하고 회원가입에 성공하면 OnRegisterSuccess 실패하면 OnRegisterFailire 함수를 실행시킬 것이다.
여기서 우리는 Email과 Password, UserName 값 세 가지만 받았다.
PasswordCheck는 한 번더 비밀번호를 입력받아 비밀번호 입력 실수를 방지하는데 이는 입력받은 값이 RegisterPlayFabUser 로 가기 전에 체크 해줄 필요가 있다.
public void RegisterButton()
{
// 회원가입에 필요한 정보 입력
var Email_request = new RegisterPlayFabUserRequest { Email = EmailSignUp.text, Password = PasswordSignUp.text, Username = NameSignUp.text };
// 회원가입 조건확인
// 비밀번호 확인
if (PasswordSignUp.text != PasswordCheckSignUp.text)
{
Debug.LogWarning("비밀번호 확인");
return;
}
// 비밀번호 자리수 체크
if (PasswordCheckSignUp.text.Length <= 8)
{
Debug.LogWarning("비밀번호 8자리 이상");
return;
}
// 회원가입
PlayFabClientAPI.RegisterPlayFabUser (Email_request, OnRegisterSuccess, OnRegisterFailire);
}
스크립트를 만들었으면 이 역시 회원가입 버튼에 넣어 완성해주자.
기본적인 기능은 만들었으니 로그띄우기 같은 기능 정도만 추가하면 그럴듯하게 완성된다.

+ 추가로 로그인을 하면 싱크톤으로 이런 오브젝트가 생기는데 여기에 로그인 정보가 담겨있어 씬을 옮겨도 로그인된 계정으로 연결되어 있다.

'코딩 > 유니티' 카테고리의 다른 글
| [Unity] 3D 랜덤 맵 생성 1 (0) | 2023.05.23 |
|---|---|
| [유니티] 안드로이드 권한 요청 (0) | 2022.10.20 |
| [유니티] PlayFab 사용 (1) 시작하기 (0) | 2022.10.07 |
| [유니티] Mixamo 1 (0) | 2022.09.28 |
| [Photon] 멀티 플레이어 (0) | 2022.09.13 |