public static System.IConvertible BitmapPopup(string p_label, System.IConvertible p_enum) { System.IConvertible p_return = p_enum; if (EnumHelper.CheckIfIsEnum(p_enum.GetType(), true)) { try { int v_value = (int)((System.IConvertible)p_enum); if (string.IsNullOrEmpty(p_label)) { v_value = EditorGUILayout.MaskField(v_value, System.Enum.GetNames(p_enum.GetType())); } else { v_value = EditorGUILayout.MaskField(p_label, v_value, System.Enum.GetNames(p_enum.GetType())); } p_return = ((System.IConvertible)v_value); } catch {} } else if (EnumHelper.CheckIfIsEnum(p_enum.GetType(), false)) { try { if (string.IsNullOrEmpty(p_label)) { p_return = (System.Enum)EditorGUILayout.EnumPopup((System.Enum)p_enum); } else { p_return = (System.Enum)EditorGUILayout.EnumPopup(p_label, (System.Enum)p_enum); } } catch {} } return(p_return); }