Here’s my little buddy.
96849-littlebuddy.png
He likes white but not black. What’s the best way to swap out the black for another color? Custom shader or texture2D?

Texture2D makes it very easy. I don’t know anything about Mip Mapping so lets assume I have unchecked generate Mip Maps in my texture import settings.

    // get all the pixels into an array of colors
    Color[] originalColors = myTexture.GetPixels();
    
    //find all the black ones and make them blue
    for (int i = 0; i < originalColors.Length; i++)
    {
         if (originalColors *== Color.black)*

{
originalColors = Color.blue;
}
}

//set the colors of the texture to the new colors
myTexture.SetPixels(originalColors);

//very important
myTexture.Apply();
If you do have mip maps the functions mentioned above expect an integer index of the lowest map level I beleive. Something like that.