- 十六进制转换为color
Color nowColor;
ColorUtility.TryParseHtmlString("#FECEE1", out nowColor);
或者
public class CommonPalette
{
public static Color StringToColor(string colorStr)
{
if (string.IsNullOrEmpty(colorStr))
{
return new Color();
}
int colorInt = int.Parse(colorStr, System.Globalization.NumberStyles.AllowHexSpecifier);
return IntToColor(colorInt);
}
[NoToLuaAttribute]
public static Color IntToColor(int colorInt)
{
float basenum = 255;
int b = 0xFF & colorInt;
int g = 0xFF00 & colorInt;
g >>= 8;
int r = 0xFF0000 & colorInt;
r >>= 16;
return new Color((float)r / basenum, (float)g / basenum, (float)b / basenum, 1);
}
}
或者
/// <summary> hex转换到color </summary>
/// <param name="hex">十六进制字符串</param>
/// <returns>Color对象</returns>
public Color HexToColor(string hex)
{
byte br = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
byte bg = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
byte bb = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
byte cc = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
float r = br / 255f;
float g = bg / 255f;
float b = bb / 255f;
float a = cc / 255f;
return new Color(r, g, b, a);
}
- color转换为十六进制
string hexadecimal = ColorUtility.ToHtmlStringRGB(nowColor);
或者
/// <summary> color转换hex </summary>
/// <param name="color">Color对象</param>
/// <returns>十六进制字符串</returns>
public static string ColorToHex(Color color)
{
int r = Mathf.RoundToInt(color.r * 255.0f);
int g = Mathf.RoundToInt(color.g * 255.0f);
int b = Mathf.RoundToInt(color.b * 255.0f);
int a = Mathf.RoundToInt(color.a * 255.0f);
string hex = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", r, g, b, a);
return hex;
}
参考链接: