### 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
}
}
		code += "		base_uv=ofs;\n";
		if (features[FEATURE_DETAIL] && detail_uv == DETAIL_UV_2) {
			code += "		base_uv2-=ofs;\n";
		}
		code += "	}\n";
	}
	if (flags[FLAG_USE_POINT_SIZE]) {
		code += "	vec4 albedo_tex = texture(texture_albedo,POINT_COORD);\n";
	} else {
		if (flags[FLAG_UV1_USE_TRIPLANAR]) {
			code += "	vec4 albedo_tex = triplanar_texture(texture_albedo,uv1_power_normal,uv1_triplanar_pos);\n";
		} else {
			code += "	vec4 albedo_tex = texture(texture_albedo,base_uv);\n";
		}
	}
	if (flags[FLAG_ALBEDO_TEXTURE_MSDF]) {
		code += "	{\n";
		code += "		albedo_tex.rgb = mix(vec3(1.0 + 0.055) * pow(albedo_tex.rgb, vec3(1.0 / 2.4)) - vec3(0.055), vec3(12.92) * albedo_tex.rgb.rgb, lessThan(albedo_tex.rgb, vec3(0.0031308)));\n";
		code += "		vec2 msdf_size = vec2(msdf_pixel_range) / vec2(textureSize(texture_albedo, 0));\n";
		if (flags[FLAG_USE_POINT_SIZE]) {
			code += "		vec2 dest_size = vec2(1.0) / fwidth(POINT_COORD);\n";
		} else {
			if (flags[FLAG_UV1_USE_TRIPLANAR]) {
				code += "		vec2 dest_size = vec2(1.0) / fwidth(uv1_triplanar_pos);\n";
			} else {
				code += "		vec2 dest_size = vec2(1.0) / fwidth(base_uv);\n";
			}
		}
		code += "		float px_size = max(0.5 * dot(msdf_size, dest_size), 1.0);\n";