///Credit judah4 ///Sourced from - http://forum.unity3d.com/threads/color-picker.267043/ using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Text; using System.Globalization; public class HexRGB : MonoBehaviour { public Text textColor; public HSVPicker hsvpicker; public void ManipulateViaRGB2Hex(){ Color color = hsvpicker.currentColor; string hex = ColorToHex (color); textColor.text = hex; } public static string ColorToHex(Color color){ int r = (int)(color.r * 255); int g = (int)(color.g * 255); int b = (int)(color.b * 255); return string.Format ("#{0:X2}{1:X2}{2:X2}", r, g, b); } public void ManipulateViaHex2RGB(){ string hex = textColor.text; Vector3 rgb = Hex2RGB (hex); Color color = NormalizeVector4 (rgb,255f,1f); print (rgb); hsvpicker.AssignColor (color); } static Color NormalizeVector4(Vector3 v,float r,float a){ float red = v.x / r; float green = v.y / r; float blue = v.z / r; return new Color (red,green,blue,a); } Vector3 Hex2RGB(string hexColor){ //Remove # if present if (hexColor.IndexOf('#') != -1) hexColor = hexColor.Replace("#", ""); int red = 0; int green = 0; int blue = 0; if (hexColor.Length == 6) { //#RRGGBB red = int.Parse(hexColor.Substring(0, 2), NumberStyles.AllowHexSpecifier); green = int.Parse(hexColor.Substring(2, 2), NumberStyles.AllowHexSpecifier); blue = int.Parse(hexColor.Substring(4, 2), NumberStyles.AllowHexSpecifier); } else if (hexColor.Length == 3) { //#RGB red = int.Parse(hexColor[0].ToString() + hexColor[0].ToString(), NumberStyles.AllowHexSpecifier); green = int.Parse(hexColor[1].ToString() + hexColor[1].ToString(), NumberStyles.AllowHexSpecifier); blue = int.Parse(hexColor[2].ToString() + hexColor[2].ToString(), NumberStyles.AllowHexSpecifier); } return new Vector3 (red, green, blue); } }