회원가입
public void SignUp()
{
BackendReturnObject bro = Backend.BMember.CustomSignUp("ID", "PASSWORD");
if (bro.IsSuccess())
{
Debug.Log("회원가입에 성공했습니다");
}
}
* 뒤끝 서버 연동 후, 사용 가능
로그인
public void Login()
{
BackendReturnObject bro = Backend.BMember.CustomLogin("ID", "PASSWORD");
if (bro.IsSuccess())
{
Debug.Log("로그인에 성공했습니다");
}
else
{
Debug.Log("로그인에 실패했습니다");
}
}
* 뒤끝 서버 연동 후, 사용 가능
자동 로그인
public void AutoLogin()
{
BackendReturnObject bro = Backend.BMember.LoginWithTheBackendToken();
if (bro.IsSuccess())
{
Debug.Log("자동 로그인에 성공했습니다");
}
else
{
Debug.Log("로그인에 실패했습니다");
}
}
* 뒤끝 서버 연동 후, 사용 가능
* 클라이언트에서 로그인을 하면, 기기에 로컬 형태로 해당 유저에 대한 Token 저장됨 -> 해당 Token을 서버 유저 데이터와 비교해서 자동 로그인
* 즉, 서버에서 유저 데이터를 삭제하면 자동 로그인 시, 에러 발생
유저 삭제
public void DeleteUserID()
{
BackendReturnObject bro = Backend.BMember.WithdrawAccount();
}
데이터 저장
1. 데이터 초기화
- 회원가입 완료 시, InsertData 함수를 호출
- 호출 완료 시, 데이터 테이블에 유니티 데이터가 서버로 전송
데이터 테이블 생성



내부에 저장된 데이터 확인 가능, 현재는 데이터가 없음. 유저당 한줄 씩, 데이터를 관리한다.
스크립트 작성
// 회원 가입을 할 때, 데이터 테이블에 추가하는 함수
public void InsertData()
{
Param param = GetUserDataParam();
BackendReturnObject bro = Backend.GameData.Insert("USER_DATA", param); // 데이터 테이블의 이름
if (bro.IsSuccess())
{
Debug.Log("데이터 추가를 성공했습니다");
}
else
{
Debug.Log("데이터 추가를 실패했습니다");
}
}
// param : 데이터를 송수신할 때 사용하는 class
private Param GetUserDataParam()
{
Param param = new Param();
param.Add("UserName", GameManager.I.DataManager.GameData.UserName);
param.Add("RankPoint", GameManager.I.DataManager.GameData.RankPoint);
// 랭킹 데이터에서 복수 데이터의 추가 항목 사용 시
//param.Add("WinLose", GameManager.I.DataManager.GameData.Win.ToString() + "|" + GameManager.I.DataManager.GameData.Lose.ToString());
return param;
}
* 랭킹에서 추가 항목을 사용할 때
- 단일 데이터 : 기본 형식과 동일하게 사용
- 복수 데이터 : "|"와 같은 특수 기호를 넣어서 데이터를 연결해서 하나의 데이터에 추가

2. 데이터 불러오기
- 서버에 저장된 Json Data(string 값)를 파싱(int, float 등으로 형 변환)해서 사용
- 로그인 시, Load 함수를 호출
- 호출 완료 시, 서버에 있는 데이터 테이블의 데이터가 유니티로 전송
스크립트 작성
using LitJson;
// 서버로부터 데이터를 불러와서 Parsing하는 함수
public void Load()
{
if (!Backend.IsInitialized)
{
Debug.LogError("현재 서버와 연결이 끊겼습니다.");
return;
}
BackendReturnObject bro = Backend.GameData.GetMyData("USER_DATA", new Where());
if (bro.IsSuccess())
{
Debug.Log("데이터 로드 성공했습니다.");
ParsingData(bro.GetReturnValuetoJSON()["rows"][0]);
// 서버에서 불러온 Json 데이터를 파싱
// Json 데이터 중, rows의 값만 가져옴
}
else
{
Debug.Log("데이터 로드 실패했습니다.");
}
}
private void ParsingData(JsonData json)
{
// 파싱된 데이터를 GameData로 불러오기
GameManager.I.DataManager.GameData.UserName = json["UserName"][0].ToString();
GameManager.I.DataManager.GameData.RankPoint = int.Parse(json["RankPoint"][0].ToString());
// 랭킹 데이터에서 복수 데이터의 추가 항목 사용 시
//string[] extraData = json["extraData"].ToString().Split("|");
//GameManager.I.DataManager.GameData.Win = int.Parse(extraData[0].ToString());
//GameManager.I.DataManager.GameData.Lose = int.Parse(extraData[1].ToString());
//GameData의 변수가 배열이라면 ?
//for (int i = 0; i < json["Items"]["L"].Count; i++)
//{
// GameManager.I.DataManager.GameData.Items[i] = int.Parse(json["Items"]["L"][i][0].ToString());
//}
}
* 랭킹에서 복수 데이터의 추가 항목을 사용할 때, 데이터를 불러와서 String 형식으로 변환 후, 사용했던 특수기호를 기준으로 Split 함수로 나눠서 string 배열을 생성한 뒤, 각각 형변환을 진행한다.
3. 데이터 저장
- 서버 저장이 필요할 때, Save 함수 호출
- 호출 완료 시, 데이터 테이블에 유니티 데이터가 서버로 전송
스크립트 작성
public void Save()
{
if (!Backend.IsInitialized)
{
Debug.LogError("현재 서버와 연결이 끊겼습니다.");
return;
}
Param param = GetUserDataParam();
BackendReturnObject bro = Backend.GameData.Update("USER_DATA", new Where(), param);
if (bro.IsSuccess())
{
Debug.Log("데이터 저장 성공했습니다.");
// 닉네임 설정
bro = Backend.BMember.UpdateNickname(GameManager.I.DataManager.GameData.UserName);
}
else
{
Debug.Log("데이터 저장 실패했습니다.");
}
}
// param : 데이터를 송수신할 때 사용하는 class
private Param GetUserDataParam()
{
Param param = new Param();
param.Add("UserName", GameManager.I.DataManager.GameData.UserName);
param.Add("RankPoint", GameManager.I.DataManager.GameData.RankPoint);
// 랭킹 데이터에서 복수 데이터의 추가 항목 사용 시
//param.Add("WinLose", GameManager.I.DataManager.GameData.Win.ToString() + "|" + GameManager.I.DataManager.GameData.Lose.ToString());
return param;
}