강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

asdfasdfasdfasdf님의 프로필 이미지
asdfasdfasdfasdf

작성한 질문수

유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

유저 데이터 온라인 DB 로드 및 저장 Pt.4 (UserGoodsData, UserSettingsData, UserPlayData, UserAchievementData, UserInventoryData)

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

해결된 질문

작성

·

13

·

수정됨

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"]);

답변 1

0

BurningCarrot님의 프로필 이미지
BurningCarrot
지식공유자

안녕하세요! BurningCarrot입니다.

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

asdfasdfasdfasdf님의 프로필 이미지
asdfasdfasdfasdf

작성한 질문수

질문하기