I am used to dealing in just 2D and with much lower level programming, so forgive my newbie Unity question. I have one 40x40 pixel sprite which is used for all characters, but the player gets to choose the color of their skin, the color of their shirt, and color of their hair. This 40x40 sprite is very simple and pixelated. So the texture looks funny, with pure red/green/blue/yellow/etc. for the dyeable areas. In C#, I simply took the image from memory, made a copy of it, dyed the character to the correct colors, and then displayed the image as a sprite. In this way, I could have multiple characters who all look different. The reason I copied the images before changing them was so that ALL characters wouldn't change when ONE was colored a certain way. All characters used the same sprite, but different coloring of that one sprite. I would appreciate any advice as to what is the best or easiest way to do this would be. As I said before, I simply did everything through simple getPixel(), setPixel() functions and a few loops when dealing with the image in memory. All of it is done before gameplay begins, or before a character is instantiated. So the characters never change color except when they're being created.