public void applyColors(Color32[] colors, bool sendEvents = true, bool radialAnimate = false, IntVector2 center = null) { for (int i = 0; i < colors.Length; i++) { if (colors[i].a != 0) { _r = _actualColors[i].r; _actualColors[i].r = colors[i].r; colors[i].r = _r; _g = _actualColors[i].g; _actualColors[i].g = colors[i].g; colors[i].g = _g; _b = _actualColors[i].b; _actualColors[i].b = colors[i].b; colors[i].b = _b; } } if (radialAnimate) { IntVector2 point; if (center == null) { point = new IntVector2(config.canvasSize.x / 2, config.canvasSize.y / 2); } else { point = center; } StartCoroutine(radialLayer.updateColorsAndAnimate(colors, point)); } StartCoroutine(backLayer.updateColors(_actualColors, radialAnimate)); if (sendEvents && events.onActiveReceiveNewColors != null) { events.onActiveReceiveNewColors(); } }