OpenGL Shaders. Pass array of float
===

On my scene i have many objects that i want to rotate at the same time but on different angles.

I have a shader that computes position of each object and draw the whole scene (pass vertex array into the shader with array of vertexes).

        "uniform float uRotation;" +
        ...
		"	mat4 mz = mat4(1.0);" +
		"	mz[0][0] = cos(rotation);" +
		"	mz[0][1] = sin(rotation);" +
		"	mz[1][0] = -sin(rotation);" +
		"	mz[1][1] = cos(rotation);" +
        ...
        gl_Position = uMVPMatrix * (aPosition *mz);

i have all my vertexes, indexes, colors etc in arrays (not 1 array for each object, but 1 array with offset for vertexes, one for colors etc.).

I want to pass array of floats (angles for each "object") in one float[], but nothing is happinig (only ).

        public void setRotations(float[] rotations)
        {
            GLES20.glUniform3fv(muRotation, rotations.length, rotations, 0);	
        }

if pass and use only one float everything is ok.

How can i pass specific float for each object (for example i want to draw 20 rectangles (i have a vetrex array: float[20*3*4]) as i understand i must have float for each vertex: rotations: float[20*4])?

