using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [System.Serializable] public class ItemData { public int id; public string name; public string description; public int level; public string imageName; // to handle object created on scene for example after removing from inventory public string itemModelName; private const string SPRITE_LOCALIZATION = "Sprites/Object Sprites/"; private const string ITEM_LOCALIZATION = "Assets/Items/"; public ItemData(Item item) { id = item.id; name = item.name; description = item.description; level = item.level; imageName = item.image.name; itemModelName = item.itemModel.name; } public Item MapDataToItem(string prefarbAssetName) { // Find prefarb in Assets/ Item item = (Item)AssetDatabase.LoadAssetAtPath(ITEM_LOCALIZATION + prefarbAssetName + ".asset", typeof(Item)); /// // DONT OVERWRITE PROPERTIES BECOUSE ITS EDIT MAIN OBJECT IN ASSET/ /// // item.Id = this.id; // item.Name = this.name; // item.Description = this.description; // item.Level = this.level; // Debug.Log(ITEM_LOCALIZATION + this.imageName); // item.Image = (Sprite)AssetDatabase.LoadAssetAtPath(ITEM_LOCALIZATION + this.imageName, typeof(Sprite)); // Debug.Log(item.Image); // item.ItemModel = (GameObject)AssetDatabase.LoadAssetAtPath(ITEM_LOCALIZATION + "Gold Ore" + ".prefab", typeof(GameObject)); return item; } }