-
Notifications
You must be signed in to change notification settings - Fork 441
/
ColorPickerWindow.cs
60 lines (55 loc) · 1.68 KB
/
ColorPickerWindow.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class ColorPickerWindow : EditorWindow
{
protected Color color = Color.white;
protected Color32 color32 = new Color32 ( 255, 255, 255, 255 );
protected string hexCode = "FFFFFF";
[MenuItem ( "Tools/Color Picker" )]
public static void Init ()
{
var window = EditorWindow.GetWindow<ColorPickerWindow> ( "Color Picker" );
window.Show ();
}
protected virtual void OnGUI ()
{
this.color = EditorGUILayout.ColorField ( "Color", this.color );
if ( GUI.changed )
{
this.color32 = this.color;
this.hexCode = ColorUtility.ToHtmlStringRGB ( this.color );
}
this.hexCode = EditorGUILayout.TextField ( "Hex Code", this.hexCode );
if ( GUI.changed )
{
ColorUtility.TryParseHtmlString ( this.hexCode, out this.color );
}
this.color32.r = ( byte )EditorGUILayout.IntSlider ( "Red", this.color32.r, 0, 255 );
this.color32.g = ( byte )EditorGUILayout.IntSlider ( "Green", this.color32.g, 0, 255 );
this.color32.b = ( byte )EditorGUILayout.IntSlider ( "Blue", this.color32.b, 0, 255 );
this.color32.a = ( byte )EditorGUILayout.IntSlider ( "Alpha", this.color32.a, 0, 255 );
if ( GUI.changed )
{
this.color = this.color32;
this.hexCode = ColorUtility.ToHtmlStringRGB ( this.color );
}
EditorGUILayout.TextField (
"Color Code",
string.Format (
"new Color ( {0}f, {1}f, {2}f, {3}f )",
this.color.r,
this.color.g,
this.color.b,
this.color.a ) );
EditorGUILayout.TextField (
"Color32 Code",
string.Format (
"new Color32 ( {0}, {1}, {2}, {3} )",
this.color32.r,
this.color32.g,
this.color32.b,
this.color32.a ) );
}
}