8x8 colored quads or 8x8 texture on 1 quad?

I want to draw an overlay on my 2D scene.
What is the more efficient thing:

  1. Draw 8x8 quads where vertexes have color?
  2. Draw a single quad having a 8x8 texture on it?
    (I also want to modify the colors a bit frequently, it’s not static)

This depends. The reason textures are used is because they are more efficient than high poly vertex colours. Raster images are in general faster to draw than vector. However, if you are dynamically altering the texture, it might be a different story. If you have a series of pre-defined textures (like an animation), then textures are still more efficient (swapping out one texture for another is trivial). If you are adding details to the texture over time (for example, bullet holes appearing) then again textures are still more efficient. If, however, you want to edit the original texture totally dynamically, there are two ways you can do it: 1) modify it in a shader and save the result to a texture. This is done on the GPU, and is very fast, but only supported by Unity Pro. 2) Get an array of pixels, modify the colours, and set them back to another texture. This is done on the CPU, and so is quite slow. I doubt it will make much difference for an 8x8 texture, but for anything larger, in the last scenario, it might just be faster to use vertex colours.