Colour Customisation sorted by UV co-ord?

Below is my character, who I would like to allow the played in-game change the outfit colours with. (for personalisation)

So far, I have tried experimenting with offsetting the texture to cycle between colour schemes

(Example Texture with two colour variants)
107570-digitalboytextest2.png

This is limited by the fact I cannot individually change a single colour, for example, change just the red part of the jacket to blue.

The only thing I can think of is separating the character into individual meshes based on colour and then having separate materials for each colour, but this seems clunky/inefficient/potentially graphically buggy.

Can anyone suggest an alternative, or is this my only recourse? Thanks

I think I’ve found it, in Blender you can export an FBX with multiple UV Maps on a single object, and then in Unity this is reflected with multiple slots to choose your material.