コード例 #1
0
    public static void ColorToolsWindow()
    {
        Color lastColor = GUI.contentColor;

        GUILayout.BeginVertical();

        // Channels
        {
            GUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Channel Mask");
            GUIContent[] contents = new GUIContent[] {
                new GUIContent("All", "All Channels"),
                new GUIContent("R", "Red"),
                new GUIContent("G", "Green"),
                new GUIContent("B", "Blue")
            };
            ColorChannelsMode temp = (ColorChannelsMode)GUILayout.Toolbar((int)colorChannelsMode, contents, toolbarButtonStyle);
            if (temp != colorChannelsMode)
            {
                newColorChannelsMode = temp;
            }
            GUILayout.EndHorizontal();
        }

        // Color
        if (colorChannelsMode == ColorChannelsMode.AllChannels)
        {
            colorBrushColor = EditorGUILayout.ColorField("Color", colorBrushColor);
        }

        // Blend
        {
            GUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Mode");
            GUIContent[] contents = new GUIContent[] {
                new GUIContent(tk2dEditorSkin.GetTexture("icon_pencil"), "Replace"),
                new GUIContent("+", "Addition"),
                new GUIContent("-", "Subtraction"),
                new GUIContent(tk2dEditorSkin.GetTexture("icon_eyedropper"), "Eyedropper")
            };
            colorBlendMode = (ColorBlendMode)GUILayout.Toolbar((int)colorBlendMode, contents, toolbarButtonStyle);
            GUILayout.EndHorizontal();
        }

        // Radius, Intensity
        {
            GUIContent radiusLabel = new GUIContent("Radius", "Shortcut - [, ]");
            colorBrushRadius = EditorGUILayout.Slider(radiusLabel, colorBrushRadius, 1.0f, 64.0f);

            GUIContent intensityLabel = new GUIContent("Intensity", "Shortcut - Minus (-), Plus (+)");
            colorBrushIntensity = EditorGUILayout.Slider(intensityLabel, colorBrushIntensity * 100.0f, 0.0f, 100.0f) / 100.0f;
        }

        // Curve
        {
            colorBrushCurve = EditorGUILayout.CurveField("Brush shape", colorBrushCurve);
        }

        GUILayout.EndVertical();

        GUI.contentColor = lastColor;

        if (Event.current.type == EventType.Repaint)
        {
            colorChannelsMode = newColorChannelsMode;
            HandleUtility.Repaint();
        }
    }
コード例 #2
0
	public static void ColorToolsWindow() {
		Color lastColor = GUI.contentColor;

		GUILayout.BeginVertical();

		// Channels
		{
			GUILayout.BeginHorizontal();
			EditorGUILayout.PrefixLabel("Channel Mask");
			GUIContent[] contents = new GUIContent[] {
				new GUIContent("All", "All Channels"),
				new GUIContent("R", "Red"),
				new GUIContent("G", "Green"),
				new GUIContent("B", "Blue")
			};
			ColorChannelsMode temp = (ColorChannelsMode)GUILayout.Toolbar((int)colorChannelsMode, contents, toolbarButtonStyle);
			if (temp != colorChannelsMode)
				newColorChannelsMode = temp;
			GUILayout.EndHorizontal();
		}

		// Color
		if (colorChannelsMode == ColorChannelsMode.AllChannels) {
			colorBrushColor = EditorGUILayout.ColorField("Color", colorBrushColor);
		}

		// Blend
		{
			GUILayout.BeginHorizontal();
			EditorGUILayout.PrefixLabel("Mode");
			GUIContent[] contents = new GUIContent[] {
				new GUIContent(tk2dEditorSkin.GetTexture("icon_pencil"), "Replace"),
				new GUIContent("+", "Addition"),
				new GUIContent("-", "Subtraction"),
				new GUIContent(tk2dEditorSkin.GetTexture("icon_eyedropper"), "Eyedropper")
			};
			colorBlendMode = (ColorBlendMode)GUILayout.Toolbar((int)colorBlendMode, contents, toolbarButtonStyle);
			GUILayout.EndHorizontal();
		}

		// Radius, Intensity
		{
			GUIContent radiusLabel = new GUIContent("Radius", "Shortcut - [, ]");
			colorBrushRadius = EditorGUILayout.Slider(radiusLabel, colorBrushRadius, 1.0f, 64.0f);

			GUIContent intensityLabel = new GUIContent("Intensity", "Shortcut - Minus (-), Plus (+)");
			colorBrushIntensity = EditorGUILayout.Slider(intensityLabel, colorBrushIntensity * 100.0f, 0.0f, 100.0f) / 100.0f;
		}

		// Curve
		{
			colorBrushCurve = EditorGUILayout.CurveField("Brush shape", colorBrushCurve);
		}

		GUILayout.EndVertical();

		GUI.contentColor = lastColor;

		if (Event.current.type == EventType.Repaint) {
			colorChannelsMode = newColorChannelsMode;
			HandleUtility.Repaint();
		}
	}