### Godot version

4.0.3

### System information

Windows10

### Issue description

sky shader accepts uniform vec3, vec4, vec3 array, but not vec4 array

### Steps to reproduce

simply pass Vector4 to uniform vec4[] from gdscript

### Minimal reproduction project

gdscript

sky_material.set_shader_parameter("v3",Vector3(1,0.8,0.5)) - v
sky_material.set_shader_parameter("v4",Vector4(1,0.8,0.5,0.2)) - v
sky_material.set_shader_parameter("v3a",[Vector3(1,0.8,0.5)]) - v
sky_material.set_shader_parameter("v4a",[Vector4(1,0.8,0.5,0.2)]) - x

sky gdshader

uniform vec3 v3;
uniform vec4 v4;
uniform vec3 v3a[1];
uniform vec4 v4a[1];

void sky(){
    COLOR.r = v4a[0].w
}
bv[0].y = v.rows[1][0];
			bv[0].z = v.rows[2][0];
			bv[0].w = 0;
			bv[1].x = v.rows[0][1];
			bv[1].y = v.rows[1][1];
			bv[1].z = v.rows[2][1];
			bv[1].w = 0;
			bv[2].x = v.rows[0][2];
			bv[2].y = v.rows[1][2];
			bv[2].z = v.rows[2][2];
			bv[2].w = 0;
		} break;
		case RS::GLOBAL_VAR_TYPE_MAT4: {
			GlobalShaderUniforms::Value *bv = &global_shader_uniforms.buffer_values[p_index];
			Vector<float> m2 = p_value;
			if (m2.size() < 16) {
				m2.resize(16);
			}
			bv[0].x = m2[0];
			bv[0].y = m2[1];
			bv[0].z = m2[2];
			bv[0].w = m2[3];
			bv[1].x = m2[4];
			bv[1].y = m2[5];
			bv[1].z = m2[6];
			bv[1].w = m2[7];
			bv[2].x = m2[8];
			bv[2].y = m2[9];
			bv[2].z = m2[10];
			bv[2].w = m2[11];