Hi, i have this ‘item’ inspector so i can make new items. The problem however is,
i have 2 enum types in there:
One is called Item Type, you can choose from CARD or ITEM in here, when you choose CARD
it shows you the fields below the separator, but whenever i change Item Type to ITEM again, the fields (Extra Damage, Extra Health, Extra Stamina) never go away…
They just stay where they are…
As you can see they still inherit the Card Type ‘Mixed’… I have no idea how i would change this,
this is my script for the inspector:
[CustomEditor(typeof(Item))]
public class CardScriptEditor : Editor
{
public override void OnInspectorGUI()
{
Item myItem = (Item)target;
EditorUtility.SetDirty(target);
EditorGUILayout.LabelField("Item name", myItem.name, EditorStyles.boldLabel);
myItem.name = EditorGUILayout.TextField("Item Name", myItem.name);
myItem.itemTypes = (Item.itemType)EditorGUILayout.EnumPopup("Item Type", myItem.itemTypes);
string selectedType = myItem.itemTypes.ToString();
myItem.icon = (Sprite)EditorGUILayout.ObjectField("Sprite", myItem.icon, typeof(Sprite), allowSceneObjects: true);
GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); // USE AS SEPARATOR
switch (selectedType)
{
case "Item":
// myItem.extraSlot = EditorGUILayout.IntField("Item Slot(s)", myItem.extraSlot); //Placeholder
break;
case "Card":
myItem.cardTypes = (Item.cardType)EditorGUILayout.EnumPopup("Card Type", myItem.cardTypes);
string cardTypes = myItem.cardTypes.ToString();
break;
default:
break;
}
switch (myItem.cardTypes)
{
case Item.cardType.Inventory:
myItem.extraSlot = EditorGUILayout.IntField("Item Slot(s)", myItem.extraSlot);
break;
case Item.cardType.Damage:
myItem.extraDamage = EditorGUILayout.IntField("Extra Damage", myItem.extraDamage);
break;
case Item.cardType.Health:
myItem.extraHealth = EditorGUILayout.IntField("Extra Health", myItem.extraHealth);
break;
case Item.cardType.Stamina:
myItem.extraStamina = EditorGUILayout.IntField("Extra Stamina", myItem.extraStamina);
break;
case Item.cardType.Mixed:
myItem.extraDamage = EditorGUILayout.IntField("Extra Damage", myItem.extraDamage);
myItem.extraHealth = EditorGUILayout.IntField("Extra Health", myItem.extraHealth);
myItem.extraStamina = EditorGUILayout.IntField("Extra Stamina", myItem.extraStamina);
break;
default:
break;
}
/*
EditorGUILayout.LabelField("Warning", EditorStyles.boldLabel);
EditorGUILayout.HelpBox("Card expansion still work in progress!", MessageType.Warning);
EditorGUILayout.HelpBox("Some features are not working correctly yet!", MessageType.Error);
*/
//base.OnInspectorGUI();
}
}
Thank you so much for every reply!
-Luc