public static Color ColorField (Rect position, Color value);
public static Color ColorField (Rect position, string label, Color value);
public static Color ColorField (Rect position, GUIContent label, Color value);
public static Color ColorField (Rect position, GUIContent label, Color value, bool showEyedropper, bool showAlpha, bool hdr);
Obsolete public static Color ColorField (Rect position, GUIContent label, Color value, bool showEyedropper, bool showAlpha, bool hdr, ColorPickerHDRConfig hdrConfig);

参数

position屏幕上用于字段的矩形。
label(可选)显示在字段前的标签。
value要编辑的颜色。
showEyedropper如果为 true,拾色器应显示吸管控件。如果为 false,则不显示吸管控件。
showAlpha如果为 true,则允许用户为颜色设置 Alpha 值。如果为 false,则隐藏 Alpha 分量。
hdr如果为 true,则将颜色视为 HDR 值。如果为 false,则将其视为标准 LDR 值。

返回

Color 用户选择的颜色。

描述

创建一个用于选择 Color 的字段。


编辑器窗口中的 Color 字段。

using UnityEngine;
using UnityEditor;

// Change The color of the selected Game Objects class EditorGUIColorField : EditorWindow { Color matColor = Color.white;

[MenuItem("Examples/Mass Color Change")]

static void Init() { var window = GetWindow<EditorGUIColorField>(); window.position = new Rect(0, 0, 170, 60); window.Show(); }

void OnGUI() { matColor = EditorGUI.ColorField(new Rect(3, 3, position.width - 6, 15), "New Color:", matColor); if (GUI.Button(new Rect(3, 25, position.width - 6, 30), "Change!")) { ChangeColors(); } }

void ChangeColors() { if (Selection.activeGameObject) { foreach (GameObject obj in Selection.gameObjects) { Renderer rend = obj.GetComponent<Renderer>();

if (rend != null) { rend.sharedMaterial.color = matColor; } } } } }