76 lines
1.9 KiB
C#
76 lines
1.9 KiB
C#
|
///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);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|