public void ApplyPallet(float time)
    {
        if (pallet == null)
        {
            return;
        }

        SpriteRenderer spriteRenderer = GetComponent <SpriteRenderer>();

        if (spriteRenderer != null)
        {
            spriteRenderer.color = pallet.GetColor(layer, time);
        }

        ParticleSystem particleSystem = GetComponent <ParticleSystem>();

        if (particleSystem != null)
        {
            var main = particleSystem.main;
            main.startColor = new ParticleSystem.MinMaxGradient(pallet.GetColor(layer, time), pallet.GetColor(highlight, time));
        }

        Camera camera = GetComponent <Camera>();

        if (camera != null)
        {
            camera.backgroundColor = pallet.GetColor(layer, time);
        }

        TextMeshPro textMeshPro = GetComponent <TextMeshPro>();

        if (textMeshPro != null)
        {
            textMeshPro.color = pallet.GetColor(layer, time);
        }

        TextMeshProUGUI textMeshProGui = GetComponent <TextMeshProUGUI>();

        if (textMeshProGui != null)
        {
            textMeshProGui.color = pallet.GetColor(layer, time);
        }

        Image image = GetComponent <Image>();

        if (image != null)
        {
            image.color = pallet.GetColor(layer, time);
        }
    }
Beispiel #2
0
        // Gegeven de coordinaten reken de mandelbrot uit en geef de kleuren terug
        private Color[,] GetMandelbrotColorArray(Size size, PointD[,] coordinates, uint iterations)
        {
            ColorPallet pallet = new ColorPallet(this.ColorScheme);

            Color[,] colorResults = new Color[size.Width, size.Height];
            // Een array is een reference-type en hiermee thread-safe zolang je niet naar dezelfde waarden in de array schrijft.
            // Parallel.for is een for loop die de verzameling verdeelt over meerdere threads
            Parallel.For(0, size.Width, x =>
            {
                for (int y = 0; y < size.Height; y++)
                {
                    double c_result = 0;
                    // Reken voor dit coordinaat het aantal iteraties en het eindresultaat uit
                    uint it_result = coordinates[x, y].GetMandelBrotNumber(iterations, out c_result);
                    // Geef de kleur terug gegeven het aantal iteraties en het eindresultaat
                    colorResults[x, y] = pallet.GetColor(it_result, c_result);
                }
            });
            return(colorResults);
        }