기능 구현Firebase 에서 제공중인 Realtime DB를 이용해 랭킹 시스템을 구현LINQ 메서드 정렬이 적용이 안되므로 VerticalLayout을 역정렬로 표현 내림차순 구현int rank = (int)snapshot.ChildrenCount;foreach (DataSnapshot userSnapshot in snapshot.Children){ string userName = userSnapshot.Child("name").Value.ToString(); string userScore = userSnapshot.Child("score").Value.ToString(); var uiUserRank = Manager.Resource.InstantiatePrefab("UserR..
기능 소개유저 데이터(Firestore)와 인벤토리 데이터(json)가 별개로 작동하여 시스템이 제대로 구축이 안 되어있음Firestore에 저장되는 데이터는 일일 사용량에 제한이 있어, 추후 출시에 문제가 발생할 수 있음그리고 Editor 내에서는 작동되지만 APK 빌드 후 인벤토리 저장에 문제가 발생⇒ 해당 3가지 트러블을 해결하기 위해 데이터 통합 작업을 진행기능 구현Data Savepublic void SaveToUserProfile(string fileName = "game_user.dat"){ string filePath = $"{Application.persistentDataPath}/{fileName}"; string json = JsonConvert.SerializeObject..
구현 소개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] publ..
기능 구현Firestore 초기화FirebaseApp app = FirebaseApp.DefaultInstance;FirebaseFirestore db = FirebaseFirestore.GetInstance(app);유저 데이터 읽어오기private void ReadUserDataFromFirestore(){ DocumentReference docRef = db.Collection("users").Document("GuestID"); docRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { if (task.IsFaulted || task.IsCanceled) { Debug.Log("F..
필수 과정Firebase 사이트에서 테스트 프로젝트 생성프로젝트 기능으로 Authentication 등록Unity에서 연동할 SDK와 google-services-json 파일 업로드Android 빌드 맞춤과 Project Settings에서 user key 생성생성한 key에서 SHA 인증서 지문 등록unity 패키지 이름 = Firebase 패키지 이름 맞추기 (com.company.name)Google Web Client ID 준비구글 Signin 패키지 다운 Releases · googlesamples/google-signin-unityGoogle Sign-In API plugin for Unity game engine. Works with Android and iOS. - googlesample..