Ejemplo n.º 1
0
 public static void Color(Property property)
 {
     Color baseColor = GUI.color;
     Color valueColor = (Color)property.value;
     GUI.color = baseColor * valueColor;
     if (GUILayout.Button(property.name))
     {
         ColorPickerGUI colorPicker = GUIPanel.guiGameObject.AddComponent<ColorPickerGUI>();
         colorPicker.title = property.name;
         colorPicker.SetColor(valueColor);
         colorPicker.handler = (Color color) =>
         {
             property.value = color;
         };
     }
     GUI.color = baseColor;
 }
Ejemplo n.º 2
0
    private void ColorTab()
    {
        if (highlightMaterial == null || !ResourcesDirectory.IsCustomMaterial(highlightMaterial))
        {
            highlightMaterial = ResourcesDirectory.MakeCustomMaterial(colorMode, allowAlpha);
            if (allowAlpha)
            {
                highlightMaterial.color = new Color(0, 0, 1, 0.25f);
            }
            else
            {
                highlightMaterial.color = Color.red;
            }
            if (handler != null)
            {
                handler(highlightMaterial);
            }
        }
        ColorMode newMode;

        if (colorModeSet == ColorModeSet.UNLIT_ONLY)
        {
            newMode = ColorMode.UNLIT;
        }
        else
        {
            string[] colorModes;
            if (colorModeSet == ColorModeSet.OBJECT)
            {
                colorModes = OBJECT_COLOR_MODES;
            }
            else if (allowAlpha)
            {
                colorModes = TRANSPARENT_COLOR_MODES;
            }
            else
            {
                colorModes = OPAQUE_COLOR_MODES;
            }
            // TODO: this is ugly
            int m = System.Array.IndexOf(colorModes, COLOR_MODE_NAMES[(int)colorMode]);
            m = GUILayout.SelectionGrid(m, colorModes,
                                        colorModes.Length, GUIStyleSet.instance.buttonTab);
            newMode = (ColorMode)System.Array.IndexOf(COLOR_MODE_NAMES, colorModes[m]);
        }
        if (newMode != colorMode)
        {
            Material newMat = ResourcesDirectory.MakeCustomMaterial(newMode, allowAlpha);
            newMat.color      = highlightMaterial.color;
            highlightMaterial = newMat;
            colorMode         = newMode;
            if (handler != null)
            {
                handler(highlightMaterial);
            }
        }
        if (colorPicker == null)
        {
            colorPicker         = gameObject.AddComponent <ColorPickerGUI>();
            colorPicker.enabled = false;
            colorPicker.SetColor(highlightMaterial.color);
            colorPicker.includeAlpha = allowAlpha;
            colorPicker.handler      = (Color c) =>
            {
                highlightMaterial.color = c;
                if (handler != null)
                {
                    handler(highlightMaterial);
                }
            };
        }
        colorPicker.WindowGUI();
    }