Hi, I need help with this X.x
why when i use a ScriptableObject here
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Equipment : Item//(item is a scriptableObject) {
public EquipmentSlot equipSlot;
public override void Use()
{
base.Use ();
EquipmentManager.instance.Equip (this);
}
}
public enum EquipmentSlot{Head, Chest, Legs, Weapon, Shield, Feet}
This code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EquipmentManager : MonoBehaviour {
#region Singleton
public static EquipmentManager instance;
void Awake()
{
instance = this;
}
#endregion
Equipment[] currentEquipment;
void Start()
{
int numSlots = System.Enum.GetNames(typeof(EquipmentSlot)).Length;
currentEquipment = new Equipment[numSlots];
}
public void Equip(Equipment newItem)
{
int slotIndex = (int)newItem.equipSlot;
}
}
Shows this:
And when i use my Item Script(this is in a database):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "Inventory System/Database")]
public class Database : ScriptableObject {
public List<Item> items = new List<Item>();
public Item FindItemInDatabase(int id)
{
foreach (Item item in items)
{
if (item.id == id)
{
return item;
}
}
return null;
}
public Item FindItemPrefab(string name)
{
foreach (Item item in items)
{
if (item.prefab.ToString () == name)
{
return item;
}
}
return null;
}
}
[System.Serializable]
public class Item
{
public int id;
public GameObject prefab;
public string name;
[TextArea(5,5)]
public string description;
public bool isStackable;
public ItemType itemType;
public Stats stats;
public Vector2 scrollPos;
public Sprite itemImage;
[System.Serializable]
public struct Stats
{
public int cost;
public int sellCost;
public int damage;
public int defense;
public int health;
public int mana;
}
public enum ItemType {CONSUMABLE, WEAPON, CLOTH, QUEST, MISC}
public virtual void Use()
{
Debug.Log ("Using:'" + name);
}
}
the Inspector shows this:
PD: I’m following a YT tutorial, I’m new in this C: