using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using UnityEngine; [Serializable] public class ChestBuildModel { [SerializeField] public string ChestName; [SerializeField] public GameObject ChestPrefab; [SerializeField] public Vector3 Position; [SerializeField] public List> Content; public ChestPrefabAsset MapBuildModelToPrefabAssetModel() { ChestPrefabAsset chestPrefabAsset = new ChestPrefabAsset( ChestName, ChestPrefab.gameObject.name, Position ); chestPrefabAsset.Chest = new Chest(ChestPrefab.GetComponent().Chest); Debug.Log(chestPrefabAsset.Chest); chestPrefabAsset.Chest.Name = ChestName; Debug.Log(chestPrefabAsset.Chest.Name); chestPrefabAsset.Chest.Content = new List>(); foreach (var ChestElement in Content) { var castedObject = ChestElement.Value as EquippableItem; if (castedObject == null) chestPrefabAsset.Chest.Content.Add( new IndexValuePair(ChestElement.Key, new EquippableItem(ChestElement.Value)) ); else chestPrefabAsset.Chest.Content.Add( new IndexValuePair(ChestElement.Key, castedObject) ); } Debug.Log(chestPrefabAsset.Chest.Content.Count); Debug.Log(chestPrefabAsset.Chest); return chestPrefabAsset; } }