public void SetLineRenderer() { lr = GetComponent <LineRenderer>(); GradientColorKey[] keys = new GradientColorKey[8]; int x = 0; for (int i = 0; i < lr.positionCount; i++) { lr.SetPosition(i, new Vector3(Mathf.Sin(((float)i / lr.positionCount) * Mathf.PI * 2), Mathf.Cos(((float)i / lr.positionCount) * Mathf.PI * 2))); if ((i) % (lr.positionCount / 7) == 0) { if (ryb) { keys[x].color = ColorRYB.RYBtoRGB(ColorRYB.HSVtoRYB(new ColorHSV((float)i / lr.positionCount, 1, 1))); } else { keys[x].color = Color.HSVToRGB((float)i / lr.positionCount, 1, 1); } keys[x].time = (float)i / lr.positionCount; x++; } } GradientAlphaKey[] alpha = new GradientAlphaKey[2]; alpha[0].alpha = 1; alpha[0].time = 0; alpha[1].time = 1; alpha[1].alpha = 1; Gradient g = new Gradient(); g.colorKeys = keys; lr.colorGradient = g; }
protected Color Complementary(Color c, float v) { float h, s, val; Color.RGBToHSV(ColorRYB.Complementary(c), out h, out s, out val); return(Color.HSVToRGB(h, s, v)); }
void SetColor(Color themeColor, Color backgroundColor, Color foregroundColor, Color accentColor) { Color col = complementary ? ColorRYB.Complementary(foregroundColor) : foregroundColor; foreach (MaskableGraphic g in baseBackground) { g.color = col; } col = complementary ? ColorRYB.Complementary(backgroundColor) : backgroundColor; foreach (MaskableGraphic g in background) { g.color = col; } col = complementary ? ColorRYB.Complementary(accentColor) : accentColor; foreach (MaskableGraphic g in foreground) { g.color = col; } }
public static Color RYBtoRGB(ColorRYB ryb) { float red = ryb.r, yellow = ryb.y, blue = ryb.b, green; float white = Mathf.Min(red, yellow, blue); red -= white; yellow -= white; blue -= white; float maxYellow = Mathf.Max(red, yellow, blue); green = Mathf.Min(yellow, blue); yellow -= green; blue -= green; if (blue > 0 && green > 0) { blue *= 2f; green *= 2f; } red += yellow; green += yellow; float maxGreen = Mathf.Max(red, green, blue); if (maxGreen > 0) { float n = maxYellow / maxGreen; red *= n; green *= n; blue *= n; } red += white; green += white; blue += white; return(new Color(red, green, blue)); }
protected Color Complementary(Color c, float v, float increment) { float h, s, val; Color.RGBToHSV(ColorRYB.Complementary(c), out h, out s, out val); if (h < .5) { increment = -increment; } if (h + increment > 1) { return(Color.HSVToRGB((h + increment) - 1, s, v)); } else if (h + increment < 0) { return(Color.HSVToRGB(1 + (h + increment), s, v)); } else { return(Color.HSVToRGB(h + increment, s, v)); } }
void SetColor(Color themeColor, Color backgroundColor, Color foregroundColor, Color accentColor) { Color col = complementary? ColorRYB.Complementary(foregroundColor) : foregroundColor; foreach (ParticleSystem p in baseBackground) { var main = p.main; main.startColor = col; } col = complementary? ColorRYB.Complementary(backgroundColor) : backgroundColor; foreach (ParticleSystem p in background) { var main = p.main; main.startColor = col; } col = complementary? ColorRYB.Complementary(accentColor) : accentColor; foreach (ParticleSystem p in foreground) { var main = p.main; main.startColor = col; } }
public static ColorHSV RYBtoHSV(ColorRYB ryb) { float h, s, v, red = ryb.r, yellow = ryb.y, blue = ryb.b; float max = Mathf.Max(red, yellow, blue); float min = Mathf.Min(red, yellow, blue); float delta = max - min; if (delta == 0) { h = 0; } else if (max == red) { h = 60 * (((yellow - blue) / delta) % 6); } else if (max == yellow) { h = 60 * (((blue - red) / delta) + 2); } else { h = 60 * (((red - yellow) / delta) + 4); } h = h / 360f; if (max == 0) { s = 0; } else { s = delta / max; } v = max; return(new ColorHSV(h, s, v)); }
void SetColor(Color themeColor, Color backgroundColor, Color foregroundColor, Color accentColor) { Color col = complementary ? ColorRYB.Complementary(foregroundColor) :foregroundColor; foreach (Material g in foreground) { g.color = col; } col = complementary ? ColorRYB.Complementary(backgroundColor) : backgroundColor; foreach (Material g in background) { g.color = col; } col = complementary ? ColorRYB.Complementary(accentColor) : accentColor; foreach (Material g in accent) { g.color = col; } col = complementary ? ColorRYB.Complementary(themeColor) : themeColor; foreach (Material g in theme) { g.color = col; } }
void SetColor(Color themeColor, Color backgroundColor, Color foregroundColor, Color accentColor) { image.color = ColorRYB.Complementary(accentColor); }