private void CreateEquipmentItem(EquipmentItemData equipmentData) { EquipmentItem itemAsset = ScriptableObject.CreateInstance <EquipmentItem>(); string itemSlug = ConvertToSlug(equipmentData.itemName); // Configure new scriptable object itemAsset.itemName = equipmentData.itemName; itemAsset.itemSlug = itemSlug; itemAsset.itemDescription = equipmentData.itemDescription; itemAsset.itemValue = equipmentData.itemValue; itemAsset.itemType = equipmentData.itemType; itemAsset.rarityType = equipmentData.rarityType; itemAsset.itemIcon = equipmentData.itemIcon; // Save new asset. string formattedName = equipmentData.itemName; if (equipmentData.itemName.Contains(" ")) { formattedName = equipmentData.itemName.Replace(' ', '_'); } string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath($"{assetStoragePath}/Item{formattedName}.asset"); AssetDatabase.CreateAsset(itemAsset, assetPathAndName); AddNewItemToDatabase <EquipmentItem>(itemAsset); AssetDatabase.Refresh(); Selection.activeObject = itemAsset; }
private void ShowEquipmentItemEditor() { rootVisualElement.Clear(); var visualTree = Resources.Load <VisualTreeAsset>(equipmentItemTreePath); visualTree.CloneTree(rootVisualElement); // Setup equipment item editor screen Button createItemButton = rootVisualElement.Q(name: "base-item-data-create-button") as Button; TextField itemNameField = rootVisualElement.Q(name: "item-data-name") as TextField; IntegerField itemValueField = rootVisualElement.Q(name: "item-data-value") as IntegerField; TextField itemDescField = rootVisualElement.Q(name: "item-data-desc") as TextField; EnumField itemTypeField = rootVisualElement.Q(name: "item-data-type") as EnumField; itemTypeField.Init(workingItemType); EnumField itemRarityField = rootVisualElement.Q(name: "item-data-rarity") as EnumField; itemRarityField.Init(RarityType.Common); ObjectField itemIconField = rootVisualElement.Q(name: "item-data-icon") as ObjectField; itemIconField.objectType = typeof(Sprite); // Set the object fields type. if (createItemButton != null) { createItemButton.clickable.clicked += () => { EquipmentItemData itemData = new EquipmentItemData(itemNameField.value, itemDescField.value, itemValueField.value, workingItemType, (RarityType)itemRarityField.value, (Sprite)itemIconField.value); CreateEquipmentItem(itemData); }; } }
public void Init(EquipmentItemData item) { GetComponent<Image> ().sprite = Resources.Load<Sprite> ("Texture/Item/"+item.info.id); equipment = item; }
public int imageNumber; // 0에서 시작 /// <summary> /// 데이터를 복사한다. /// </summary> /// <param name="data">복사할 데이터</param> public void CopyData(EquipmentItemData data) { name = data.name; type = data.type; imageNumber = data.imageNumber; }
public void EquipItem(EquipmentItemData item, EquipPart part) { if (item.info.category != Character.ItemPartMap [part]) { throw new System.Exception("can not equip " + item.info.name + " on " + part.ToString() + ", not proper item part"); } item.part = part; equipments [(int)part] = item; }