강의

멘토링

커뮤니티

Inflearn Community Q&A

No author

This post's author information has been deleted.

Unity System Programming Pt.2 - All-in-One Package of Core Systems for Commercial Game Implementation

Loading and Saving User Data to Online DB Pt.4 (UserGoodsData, UserSettingsData, UserPlayData, UserAchievementData, UserInventoryData)

18 유저 데이터 온라인DB 로드 및 저장 PT4의 UserInventoryData 클래스에 대하여

Resolved

Written on

·

60

·

Edited

0

private void ConvertFirestoreDictToData(Dictionary<string, object> dict)
  {
    EquippedWeaponData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedWeaponData"]);
    EquippedShieldData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedShieldData"]);
    EquippedChestArmourData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedChestArmourData"]);
    EquippedBootsData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedBootsData"]);
    EquippedGlovesData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedGlovesData"]);
    EquippedAccessoryData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedAccessoryData"]);
    InventoryItemDataList = ConvertDictToInventoryList((List<object>)dict["InventoryItemDataList"]);
    
    if(dict.TryGetValue("EquippedWeaponData", out var equippedWeaponDataValue) && equippedWeaponDataValue is Dictionary<string, object> equippedWeaponDataDict)
      EquippedWeaponData = ConvertDictToUserItemData(equippedWeaponDataDict);

    if (dict.TryGetValue("EquippedShieldData", out var equippedShieldDataValue) && equippedShieldDataValue is Dictionary<string, object> equippedShieldDataDict)
      EquippedShieldData = ConvertDictToUserItemData(equippedShieldDataDict);

    if (dict.TryGetValue("EquippedChestArmourData", out var equippedChestArmorDataValue) && equippedChestArmorDataValue is Dictionary<string, object> equippedChestArmorDataDict)
      EquippedChestArmourData = ConvertDictToUserItemData(equippedChestArmorDataDict);

    if (dict.TryGetValue("EquippedBootsData", out var equippedBootsDataValue) && equippedBootsDataValue is Dictionary<string, object> equippedBootsDataDict)
      EquippedBootsData = ConvertDictToUserItemData(equippedBootsDataDict);

    if (dict.TryGetValue("EquippedGlovesData", out var equippedGlovesDataValue) && equippedGlovesDataValue is Dictionary<string, object> equippedGlovesDataDict)
      EquippedGlovesData = ConvertDictToUserItemData(equippedGlovesDataDict);

    if (dict.TryGetValue("EquippedAccessoryData", out var equippedAccessoryDataValue) && equippedAccessoryDataValue is Dictionary<string, object> equippedAccessoryDataDict)
      EquippedAccessoryData = ConvertDictToUserItemData(equippedAccessoryDataDict);

    if (dict.TryGetValue("InventoryItemDataList", out var inventoryItemDataListValue) && inventoryItemDataListValue is List<object> inventoryItemDataList)
      InventoryItemDataList = ConvertDictToInventoryList(inventoryItemDataList);
  }

위와 같이 수정하셨는데, trygetvalue로 체크하는것으로 바꾸었으니 아래와 같은 부분을 지워주는게 맞지 않나요? 안그러면 중복 처리 되는게 아닌가요?

   EquippedWeaponData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedWeaponData"]);
    EquippedShieldData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedShieldData"]);
    EquippedChestArmourData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedChestArmourData"]);
    EquippedBootsData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedBootsData"]);
    EquippedGlovesData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedGlovesData"]);
    EquippedAccessoryData = ConvertDictToUserItemData((Dictionary<string, object>)dict["EquippedAccessoryData"]);
    InventoryItemDataList = ConvertDictToInventoryList((List<object>)dict["InventoryItemDataList"]);
C#unity객체지향

Answer 1

0

burningcarrot님의 프로필 이미지
burningcarrot
Instructor

안녕하세요! BurningCarrot입니다.

확인 감사합니다. 중복된 코드는 삭제하여 수업 자료에 재업로드해 두었습니다. 🙂

No author

This post's author information has been deleted.

Ask a question