강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

投稿者なし

この投稿の投稿者情報は削除されました。

Unityシステムプログラミング Pt.2 - 商用ゲーム実装のための核心システムオールインワンパッケージ

ユーザーデータオンラインDBロード及び保存 Pt.4 (UserGoodsData, UserSettingsData, UserPlayData, UserAchievementData, UserInventoryData)

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

解決済みの質問

作成

·

60

·

編集済み

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객체지향

回答 1

0

burningcarrot님의 프로필 이미지
burningcarrot
インストラクター

안녕하세요! BurningCarrot입니다.

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

投稿者なし

この投稿の投稿者情報は削除されました。

質問する