j'ai deux script: ItemManagerInspector et ItemDatabaseManager
mon enum et sur le ItemDatabaseManager et je veux l'utiliser dans le ItemManagerInspector mais je n'y arrive pas...
l'enum:
Code : Tout sélectionner
public enum TypeOfWeapon
{
baton,
hache1M,
hache2M,
epee1M,
epee2M,
masse1M,
masse2M,
distance,
bouclier,
}
Code : Tout sélectionner
public override void OnInspectorGUI()
{
ItemManager im = target as ItemManager;
List<Weapon> weapon = new List<Weapon>();
List<Armor> armor = new List<Armor>();
List<Consumable> consumable = new List<Consumable>();
for(int i = 0; i < im.itemList.Count; i++)
{
if(im.itemList[i].GetType() == typeof(Weapon))
{
weapon.Add((Weapon)im.itemList[i]);
}
if(im.itemList[i].GetType() == typeof(Armor))
{
armor.Add((Armor)im.itemList[i]);
}
if(im.itemList[i].GetType() == typeof(Consumable))
{
consumable.Add((Consumable)im.itemList[i]);
}
}
showingWeapons = EditorGUILayout.Foldout(showingWeapons, "Weapons: " + weapon.Count);
if(showingWeapons)
{
EditorGUI.indentLevel = 2;
//display all of the weapon in database
for(int i = 0; i < weapon.Count; i++)
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField(weapon[i].name);
if(GUILayout.Button("-"))
{
im.itemList.Remove(weapon[i]);
}
EditorGUILayout.EndHorizontal();
EditorGUI.indentLevel +=1;
weapon[i].name = EditorGUILayout.TextField("Name: ", weapon[i].name);
weapon[i].description = EditorGUILayout.TextField("desc: ", weapon[i].description);
weapon[i].cost =int.Parse( EditorGUILayout.TextField("cost: ", weapon[i].cost.ToString()));
weapon[i].damage =int.Parse( EditorGUILayout.TextField("damage: ", weapon[i].damage.ToString()));
weapon[i].miniLevel =int.Parse( EditorGUILayout.TextField("mini level: ", weapon[i].miniLevel.ToString()));
EditorGUI.indentLevel -= 1;
EditorGUILayout.Space();
}
if(GUILayout.Button("Add New Weapon"))
{
Weapon newWeapon = (Weapon)ScriptableObject.CreateInstance<Weapon>();
newWeapon.name = "New Weapon";
newWeapon.description = "";
newWeapon.cost = 0;
newWeapon.damage = 0;
im.itemList.Add(newWeapon);
}
EditorGUI.indentLevel = 0;
}
showingArmors = EditorGUILayout.Foldout(showingArmors, "Armors: " + armor.Count);
if(showingArmors)
{
EditorGUI.indentLevel = 2;
//display all of the armor in database
for(int i = 0; i < armor.Count; i++)
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField(armor[i].name);
if(GUILayout.Button("-"))
{
im.itemList.Remove(armor[i]);
}
EditorGUILayout.EndHorizontal();
EditorGUI.indentLevel +=1;
armor[i].name = EditorGUILayout.TextField("Name: ", armor[i].name);
armor[i].description = EditorGUILayout.TextField("desc: ", armor[i].description);
armor[i].cost =int.Parse( EditorGUILayout.TextField("cost: ", armor[i].cost.ToString()));
armor[i].protection =int.Parse( EditorGUILayout.TextField("protection: ", armor[i].protection.ToString()));
armor[i].miniLevel =int.Parse( EditorGUILayout.TextField("mini level: ", armor[i].miniLevel.ToString()));
EditorGUI.indentLevel -= 1;
EditorGUILayout.Space();
}
if(GUILayout.Button("Add New Armor"))
{
Armor newArmor = (Armor)ScriptableObject.CreateInstance<Armor>();
newArmor.name = "New Armor";
newArmor.description = "";
newArmor.cost = 0;
newArmor.protection = 0;
im.itemList.Add(newArmor);
}
EditorGUI.indentLevel = 0;
}
showingConsumables = EditorGUILayout.Foldout(showingConsumables, "Consumables: " + consumable.Count);
if(showingConsumables)
{
EditorGUI.indentLevel = 2;
//display all of the consumable in database
for(int i = 0; i < consumable.Count; i++)
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField(consumable[i].name);
if(GUILayout.Button("-"))
{
im.itemList.Remove(consumable[i]);
}
EditorGUILayout.EndHorizontal();
EditorGUI.indentLevel +=1;
consumable[i].name = EditorGUILayout.TextField("Name: ", consumable[i].name);
consumable[i].description = EditorGUILayout.TextField("desc: ", consumable[i].description);
consumable[i].cost =int.Parse( EditorGUILayout.TextField("cost: ", consumable[i].cost.ToString()));
consumable[i].utilisation =int.Parse( EditorGUILayout.TextField("utilisation: ", consumable[i].utilisation.ToString()));
consumable[i].miniLevel =int.Parse( EditorGUILayout.TextField("mini level: ", consumable[i].miniLevel.ToString()));
EditorGUI.indentLevel -= 1;
EditorGUILayout.Space();
}
if(GUILayout.Button("Add New Consumable"))
{
Consumable newConsumable = (Consumable)ScriptableObject.CreateInstance<Consumable>();
newConsumable.name = "New Armor";
newConsumable.description = "";
newConsumable.cost = 0;
newConsumable.utilisation = 0;
im.itemList.Add(newConsumable);
}
EditorGUI.indentLevel = 0;
}
}