본문으로 건너뛰기
버전: SDK-5.11.7

사전 준비

게임 정보관리 기능을 구현하기 위해서는 다음과 같은 작업들이 사전에 준비되어 있어야 합니다.

  1. 완성된 로그인 함수 로직
  2. 뒤끝 콘솔 게임 정보 테이블 생성
  3. 게임 정보 전용 스크립트 생성

1. 완성된 로그인 함수 로직

로그인/회원가입 외에 모든 뒤끝 기능은 로그인이 진행된 이후에 정상적으로 함수를 호출할 수 있습니다.
만약 로그인 로직이 구현되지 않으셨을 경우 1. 로그인/회원가입 구현하기 가이드에 따라 로그인 로직을 구현해주시기 바랍니다.

2. 뒤끝 콘솔 게임 정보 테이블 생성

뒤끝 콘솔 뒤끝베이스 > 게임 정보 관리 > 테이블에서 상단 '테이블 생성' 버튼을 클릭합니다.

분류는 private, 스키마 정의는 미사용인 테이블을 생성합니다.
해당 예제에서는 테이블 명을 USER_DATA로 칭하였습니다.

만약 테이블 명을 USER_DATA가 아닌 다른 이름으로 설정하였을 경우, 각 예제에 존재하는 "USER_DATA"라는 값을 설정하신 이름으로 변경해주세요.

생성된 테이블을 클릭하여 게임 정보 관리 > 데이터로 이동합니다.

해당 테이블의 데이터는 테스트 이후에 생성될 예정입니다.

3. 게임 정보 전용 스크립트 생성

새로운 스크립트를 생성하고 이름을 BackendGameData으로 수정합니다.
이후 BackendGameData.cs 스크립트를 열어 내용을 다음과 같이 수정합니다.

using System.Collections.Generic;
using System.Text;
using UnityEngine;

// 뒤끝 SDK namespace 추가
using BackEnd;

public class UserData {
public int level = 1;
public float atk = 3.5f;
public string info = string.Empty;
public Dictionary<string, int> inventory = new Dictionary<string, int>();
public List<string> equipment = new List<string>();

// 데이터를 디버깅하기 위한 함수입니다.(Debug.Log(UserData);)
public override string ToString() {
StringBuilder result = new StringBuilder();
result.AppendLine($"level : {level}");
result.AppendLine($"atk : {atk}");
result.AppendLine($"info : {info}");

result.AppendLine($"inventory");
foreach(var itemKey in inventory.Keys) {
result.AppendLine($"| {itemKey} : {inventory[itemKey]}개");
}

result.AppendLine($"equipment");
foreach(var equip in equipment) {
result.AppendLine($"| {equip}");
}

return result.ToString();
}
}

public class BackendGameData {
private static BackendGameData _instance = null;

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

return _instance;
}
}

public static UserData userData;

private string gameDataRowInDate = string.Empty;

public void GameDataInsert() {
// Step 2. 게임 정보 삽입 구현하기
}

public void GameDataGet() {
// Step 3. 게임 정보 불러오기 구현하기
}

public void LevelUp() {
// Step 4. 게임 정보 수정 구현하기
}

public void GameDataUpdate() {
// Step 4. 게임 정보 수정 구현하기
}
}

BackendManager.cs

using UnityEngine;
using System.Threading.Tasks;

// 뒤끝 SDK namespace 추가
using BackEnd;

public class BackendManager : MonoBehaviour {
void Start() {
var bro = Backend.Initialize(true); // 뒤끝 초기화

// 뒤끝 초기화에 대한 응답값
if(bro.IsSuccess()) {
Debug.Log("초기화 성공 : " + bro); // 성공일 경우 statusCode 204 Success
} else {
Debug.LogError("초기화 실패 : " + bro); // 실패일 경우 statusCode 400대 에러 발생
}

Test();
}

// 동기 함수를 비동기에서 호출하게 해주는 함수(유니티 UI 접근 불가)
async void Test() {
await Task.Run(() => {
BackendLogin.Instance.CustomLogin("user1", "1234"); // 뒤끝 로그인

// 게임 정보 기능 구현 로직 추가

Debug.Log("테스트를 종료합니다.");
});
}
}