Version: 2023.2
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; } } } } }