유니티 FirestoreProperty를 사용한 C# 클래스 매핑Unity/SDK2024. 1. 21. 14:30
Table of Contents
구현 소개
- Dictionary를 사용한 데이터 저장은 관리가 불편하다.
- 관리를 쉽게 하기 위해 클래스로 만든 객체 필드,프로퍼티 값들을 Firestore에 저장할 필요가 있다.
기능 구현
Firestore 전용 데이터 클래스
using Firebase.Firestore;
[FirestoreData]
public class GameUserProfile
{
// Info
[FirestoreProperty] public string Uid { get; set; }
[FirestoreProperty] public string Nickname { get; set; }
[FirestoreProperty] public long Gold { get; set; }
[FirestoreProperty] public int Gems { get; set; }
// Stats
[FirestoreProperty] public int Stat_Level_Hp { get; set; }
[FirestoreProperty] public int Stat_Level_HpRecovery { get; set; }
[FirestoreProperty] public int Stat_Level_AtkDamage { get; set; }
[FirestoreProperty] public int Stat_Level_AtkSpeed { get; set; }
[FirestoreProperty] public int Stat_Level_CritChance { get; set; }
[FirestoreProperty] public int Stat_Level_CritDamage { get; set; }
// Stages
[FirestoreProperty] public int Stage { get; set; }
[FirestoreProperty] public int Stage_Level { get; set; }
// Quest
[FirestoreProperty] public int Quest_Complete { get; set; }
[FirestoreProperty] public int Quest_Current_Progress { get; set; }
}
- FirestoreData 속성(Attribute)은 Firestore 문서의 필드와 C# 클래스의 속성을 매핑하는 데 사용한다.
- FirestoreProperty 속성은 해당 속성이 Firestore 문서 필드와 매핑되어야 함을 나타낸다.
DataManager
public class DataManager
{
public GameUserProfile Profile { get; private set; }
public void SetUserProfile(GameUserProfile profile)
{
Profile = profile;
}
public GameUserProfile CreateUserProfile(string guestId)
{
Profile = new()
{
Uid = Utility.GenerateID(),
Nickname = $"Guest-{guestId}",
Stat_Level_AtkDamage = 1,
Stat_Level_AtkSpeed = 1,
Stat_Level_CritChance = 1,
Stat_Level_CritDamage = 1,
Stat_Level_Hp = 1,
Stat_Level_HpRecovery = 1,
Stage = 1,
Stage_Level = 1
};
return Profile;
}
}
- 유저 프로필 데이터를 관리할 DataManager 생성
- 데이터를 초기화할 Set 매서드와 데이터가 없을 시 생성하도록 Create 매서드를 구현
'Unity > SDK' 카테고리의 다른 글
유니티 Firebase 랭킹 시스템 (0) | 2024.02.06 |
---|---|
유니티 Firebase를 활용한 데이터 시스템 (0) | 2024.01.29 |
유니티 Firestore를 통한 데이터 저장 & 불러오기 (0) | 2024.01.18 |
유니티 Firebase 구글 로그인 구현 (0) | 2024.01.15 |