### Godot version

v4.0.2.stable.official [7a0977ce2]

### System information

GNU/Linux, GLES3 & Vulkan, Intel UHD 770

### Issue description

When passing arrays of color objects to the shader, the shader program cannot get the values, even when converted to vector arrays.

And source_color hint does not convert colors correctly when passed through an array.

```
var colors := [
	Color.hex(0x0088ffff),
	Color.hex(0xff000088),
	Color.hex(0x00ff0000),
	Color.hex(0x0000ffff),
]
func _ready() -> void:
	var shader: ShaderMaterial = mesh.material
	shader.set_shader_parameter("vec4_no_hint", colors)
	shader.set_shader_parameter("vec4_hint", colors)
	shader.set_shader_parameter("vec3_no_hint", colors)
	shader.set_shader_parameter("vec3_hint", colors)
	var cvt_colors = colors.map(func (c): return Vector4(c.r, c.g, c.b, c.a))
	shader.set_shader_parameter("cvt_vec4_no_hint", cvt_colors)
	shader.set_shader_parameter("cvt_vec4_hint", cvt_colors)
	shader.set_shader_parameter("cvt_vec3_no_hint", cvt_colors)
	shader.set_shader_parameter("cvt_vec3_hint", cvt_colors)
```

Result With GLES3:
![图片](https://user-images.githubusercontent.com/20413045/232321140-3118a776-e76e-4e73-954f-c7b4f155d1ec.png)

Result With Vulkan:
![图片](https://user-images.githubusercontent.com/20413045/232321207-d52cb2e5-c644-40a8-89ee-71da8b58e408.png)


### Steps to reproduce

Open the sample project attached, open the test scene, switch to the 3D tab, you will see it.

### Minimal reproduction project

[test-color-uniform-array.tar.gz](https://github.com/godotengine/godot/files/11242561/test-color-uniform-array.tar.gz)

actions.renames["TIME"] = "time";
		actions.renames["PI"] = _MKSTR(Math_PI);
		actions.renames["TAU"] = _MKSTR(Math_TAU);
		actions.renames["E"] = _MKSTR(Math_E);
		actions.renames["AT_LIGHT_PASS"] = "false";
		actions.renames["INSTANCE_CUSTOM"] = "instance_custom";
		actions.renames["COLOR"] = "color";
		actions.renames["NORMAL"] = "normal";
		actions.renames["NORMAL_MAP"] = "normal_map";
		actions.renames["NORMAL_MAP_DEPTH"] = "normal_map_depth";
		actions.renames["TEXTURE"] = "color_texture";
		actions.renames["TEXTURE_PIXEL_SIZE"] = "color_texture_pixel_size";
		actions.renames["NORMAL_TEXTURE"] = "normal_texture";
		actions.renames["SPECULAR_SHININESS_TEXTURE"] = "specular_texture";
		actions.renames["SPECULAR_SHININESS"] = "specular_shininess";
		actions.renames["SCREEN_UV"] = "screen_uv";
		actions.renames["SCREEN_PIXEL_SIZE"] = "screen_pixel_size";
		actions.renames["FRAGCOORD"] = "gl_FragCoord";
		actions.renames["POINT_COORD"] = "gl_PointCoord";
		actions.renames["INSTANCE_ID"] = "gl_InstanceIndex";
		actions.renames["VERTEX_ID"] = "gl_VertexIndex";
		actions.renames["LIGHT_POSITION"] = "light_position";
		actions.renames["LIGHT_DIRECTION"] = "light_direction";
		actions.renames["LIGHT_IS_DIRECTIONAL"] = "is_directional";
		actions.renames["LIGHT_COLOR"] = "light_color";
		actions.renames["LIGHT_ENERGY"] = "light_energy";
		actions.renames["LIGHT"] = "light";
		actions.renames["SHADOW_MODULATE"] = "shadow_modulate";
		actions.renames["texture_sdf"] = "texture_sdf";
		actions.renames["texture_sdf_normal"] = "texture_sdf_normal";