[SOLVED] Only instantiating once

So, I have some code that I am trying to use to create a line over the top of another line (a gameobject), however, that line underneath is made from a prefab. I have the original prefab to the side, but whenever I try to instantiate a line, it only works once, even though I can click on different ones, and also it only pastes it over the prefab to the side. Any ideas?

Code:

var newSkin : GUISkin;
var redLine : GameObject;
var blueLine : GameObject;
var x : int;
var y : int;
var usable : boolean;
var cube : GameObject;
var isHit : boolean;

function Start() {
	x = transform.position.x;
	y = transform.position.y;
	usable = true;
}

function Update() {
    lineButton();
	if (Input.GetMouseButton(0)) {
    	var hit : RaycastHit;
        var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
        if (Physics.Raycast (ray, hit)) {
        	if (hit.collider.gameObject.tag==gameObject.collider)
            {
            	isHit = true;
            }
            else
            {
            	isHit = false;
            }
        }
    }
    lineButton();
}

function lineButton() {
	if(!VarDefiner.isMainMenu)
	{
    	if(isHit && usable)
    	{
    		if(VarDefiner.redTurn)
    		{
				cube = Instantiate(redLine, new Vector3(transform.position.x, transform.position.y, 15), Quaternion.Euler(transform.rotation.x, transform.rotation.y, transform.rotation.z + 89.2929));
    			usable = false;
    			isHit = false;
    			VarDefiner.redTurn = false;
    		}
    		else
    		{
				cube = Instantiate(blueLine, new Vector3(x - 0.5, y + 0.35, 15), Quaternion.Euler(transform.rotation.x, transform.rotation.y, transform.rotation.z + 89.2929));
    			usable = false;
    			isHit = false;
    			VarDefiner.redTurn = true;
    		}
    	}
    }
}

Have you considered using Unity’s “LineRenderer” for your lines. You can give it the start and end point(your dot coordinates) and it will draw a line between the two. You can change how it looks via its Material.