UE5) 플레이팹 플레이어 데이터

플레이어 데이터란?

간단하게 말하면 개인 데이터베이스 생각하면 되시겠다.

개발자 대시보드에 플레이어 텝에서 특정 플레이어를 검색한 뒤,

해당 플레이어의 이름을 클릭해 상세정보로 들어가자.

상단 메뉴중 플레이어데이터(타이틀) 이라는 메뉴가 있을 것이다.

여기에 저장하고 싶은 데이터들을 JSON 형태로 저장하면 되겠다.

이 웹 페이지에서 직접 작성해 넣어줘도 되고,

코드에서 없으면 추가하는 식으로 만들어도 된다.

  • 아직 플레이어 데이터(타이틀)과 플레이어 데이터(게시자)의 차이는 잘 모르겠다.

타이틀 데이터

개인 데이터베이스가 있다면, 전역 데이터베이스도 있다.

플레이팹에서는 타이틀 데이터라고 부른다.

대시보드의 왼쪽 메뉴에 콘텐츠 텝을 눌러 들어가면,

상단 메뉴에 타이틀 데이터 텝이 있다.

이곳에다 전역 데이터베이스를 JSON 형태로 선언해주면 된다.


플레이어 데이터 코드 작성

플레이어 데이터는 플레이팹 클라이언트 포인터에서 UserData라는 이름으로 쓰거나 읽어올 수 있다.

안타까운점은 수정하는 기능은 지원하지 않는다.

DB 내용물을 수정하고 싶다면, 데이터를 읽어온 뒤 필요한 부분을 바꿔서 덮어써야 한다.

데이터 쓰기

리퀘스트 구조체에다 DB의 키와, 데이터가 될 JSONString을 만들어서 전달한다.

이때, 이미 키값에 해당하는 내용이 DB에 있다면, 덮어쓰게 된다.

데이터 읽기

데이터를 읽어올 때, 리퀘스트 구조체에다 내가 읽어오고 싶은 데이터에 해당하는 Key값을 넘겨주면 해당 값만 읽어오게 된다.

key값을 주지 않으면 DB를 전부 읽어온다.

성공시 델리게이트에 전달되는 파라미터(여기서는 Result)내부 변수 Data가 DB에서 가져온 데이터 되시겠다.

키값으로 구분해서 데이터를 찾아 쓰면 된다.

들어있는 값은 JSON String이기 때문에 내 프로젝트 상황에 맞춰서 적당히 변환할 필요가 있다.


타이틀 데이터 코드 작성

타이틀 데이터는 전역DB라 그런지 클라이언트에서 수정할 수 없게 막혀있다.

서버권환을 획득하면 수정 가능하다고는 하는데, 서버API를 가져오는 방법을 아직 모르겠다.

그냥 읽는 코드만 작성한다.

PlayFabClient->GetTitleData(...);

플레이어 데이터를 읽어오는 코드와 거의 흡사하기 때문에, 생략하도록 하겠다.