public static z_ColorMask ColorMaskField(GUIContent gc, z_ColorMask mask) { GUILayout.BeginHorizontal(); if (gc != null) { int w = (int)EditorGUIUtility.currentViewWidth / 2; GUILayout.Label(gc, GUILayout.MinWidth(w), GUILayout.MaxWidth(w)); } if (GUILayout.Button("R", mask.r ? "Commandleft" : z_GUI.GetStyleOn("Commandleft"))) { mask.r = !mask.r; } if (GUILayout.Button("G", mask.g ? "Commandmid" : z_GUI.GetStyleOn("Commandmid"))) { mask.g = !mask.g; } if (GUILayout.Button("B", mask.b ? "Commandmid" : z_GUI.GetStyleOn("Commandmid"))) { mask.b = !mask.b; } if (GUILayout.Button("A", mask.a ? "Commandright" : z_GUI.GetStyleOn("Commandright"))) { mask.a = !mask.a; } GUILayout.EndHorizontal(); return(mask); }
/** * Lerp between 2 colors. */ public static Color32 Lerp(Color32 lhs, Color32 rhs, z_ColorMask mask, float alpha) { return(new Color32(mask.r ? (byte)(lhs.r * (1f - alpha) + rhs.r * alpha) : lhs.r, mask.g ? (byte)(lhs.g * (1f - alpha) + rhs.g * alpha) : lhs.g, mask.b ? (byte)(lhs.b * (1f - alpha) + rhs.b * alpha) : lhs.b, mask.a ? (byte)(lhs.a * (1f - alpha) + rhs.a * alpha) : lhs.a)); }
// Inspector GUI shown in the Editor window. Base class shows z_BrushSettings by default public override void DrawGUI(z_BrushSettings brushSettings) { base.DrawGUI(brushSettings); GUILayout.BeginHorizontal(); if (colorPalette == null) { RefreshAvailablePalettes(); } EditorGUI.BeginChangeCheck(); currentPaletteIndex = EditorGUILayout.Popup(currentPaletteIndex, availablePalettes_str, "popup"); if (EditorGUI.EndChangeCheck()) { if (currentPaletteIndex >= availablePalettes.Length) { SetColorPalette(z_ColorPaletteEditor.AddNew()); } else { SetColorPalette(availablePalettes[currentPaletteIndex]); } } paintMode = (z_PaintMode)GUILayout.Toolbar((int)paintMode, modeIcons, "Command", GUILayout.Width(120)); GUILayout.EndHorizontal(); if (!likelySupportsVertexColors) { EditorGUILayout.HelpBox("It doesn't look like any of the materials on this object support vertex colors!", MessageType.Warning); } colorPaletteEditor.onSelectIndex = (color) => { SetBrushColor(color, brushSettings.strength); }; colorPaletteEditor.onSaveAs = SetColorPalette; mask = z_GUILayout.ColorMaskField("Color Mask", mask); colorPaletteEditor.OnInspectorGUI(); }
/** * Color field control */ public static z_ColorMask ColorMaskField(string text, z_ColorMask mask) { return(ColorMaskField(string.IsNullOrEmpty(text) ? null : z_GUI.TempContent(text), mask)); }