Creating differently colored cubes, selecting by pressing 1,2,3,...

I want to have a system that allows me to select the color of the cubes by pressing 1,2,3,… and build them afterwards. Currently I only have this script:

var blockLayer : LayerMask = 1;
var range : float = Mathf.Infinity;
var hit : RaycastHit;
 
function Update () {
    if (Input.GetMouseButtonDown(0))
        Build();
    if (Input.GetMouseButtonDown(1))
        Erase();
}
 
function Build() {
    if (HitBlock()) {
        var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = hit.transform.position + hit.normal;
        cube.name = "ErasableCube";
    }
}
 
function Erase() {
    if (HitBlock())
       if(hit.transform.name == "ErasableCube"){
        Destroy(hit.transform.gameObject);
      }
}
 
function HitBlock() : boolean {
    return Physics.Raycast(transform.position, transform.forward, hit, range, blockLayer);
}

I just want basic colors like red, green or blue.

http://forum.unity3d.com/threads/180833-Unlit-Single-Color-Shader color,

maybe use a colored texture pic, and rewrite mesh.uv to equals a pixel on the texture, if above makes many drawcalls

Thats the code i used in the End:

var blockLayer : LayerMask = 1;

var range : float = Mathf.Infinity;
var hit : RaycastHit;
var select : int = 1;
 
function Update () {
    if (Input.GetMouseButtonDown(0))
        Build();
    if (Input.GetMouseButtonDown(1))
        Erase();
    if (Input.GetButtonDown("1"))
        select = 1;
    if (Input.GetButtonDown("2"))
        select = 2;
    if (Input.GetButtonDown("3"))
        select = 3;
}
 
function Build() {
    if (select == 1){
    if (HitBlock()) {
        var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = hit.transform.position + hit.normal;
        cube.name = "ErasableCube";
    }
}
    if (select == 2){
    if (HitBlock()) {
        cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.renderer.material.color = Color.red;
        cube.transform.position = hit.transform.position + hit.normal;
        cube.name = "ErasableCube";
    }
}
if (select == 3){
    if (HitBlock()) {
        cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.renderer.material.color = Color.blue;
        cube.transform.position = hit.transform.position + hit.normal;
        cube.name = "ErasableCube";
    }
}
}
function Erase() {
    if (HitBlock())
       if(hit.transform.name == "ErasableCube"){
        Destroy(hit.transform.gameObject);
      }
}
 
function HitBlock() : boolean {
    return Physics.Raycast(transform.position, transform.forward, hit, range, blockLayer);
}