private bool GUIMultipleFeaturesInternal(string label, string tooltip, string[] labelsAndFeatures, bool enabled = true, bool increaseIndentLevel = false, string helpTopic = null, bool showHelp = true, float width = 146, bool visible = true) { if (!enabled) { GUI.enabled = false; } if (increaseIndentLevel) { label = "▪ " + label; } string[] labels = new string[labelsAndFeatures.Length]; string[] features = new string[labelsAndFeatures.Length]; int feature = 0; for (int i = 0; i < labelsAndFeatures.Length; i++) { string[] data = labelsAndFeatures[i].Split('|'); labels[i] = data[0]; features[i] = data[1]; if (data.Length > 1 && !string.IsNullOrEmpty(features[i])) { if (TCP2_ShaderGeneratorUtils.HasFeatures(mCurrentConfig, features[i])) { feature = i; } } } visible = mHideDisabled ? enabled : visible; if (visible) { string help = string.IsNullOrEmpty(helpTopic) ? label.TrimStart('▪', ' ') : helpTopic; EditorGUILayout.BeginHorizontal(); if (showHelp) { TCP2_GUI.HelpButton(label.TrimStart('▪', ' '), help); } TCP2_GUI.SubHeader(label, tooltip, (feature > 0) && enabled, width); feature = EditorGUILayout.Popup(feature, labels); EditorGUILayout.EndHorizontal(); } TCP2_ShaderGeneratorUtils.ToggleMultipleFeatures(mCurrentConfig.Features, feature, features); if (!enabled) { GUI.enabled = mGUIEnabled; } return(feature > 0); }