Continuous activation of touch?

So I didn’t really know how else to put the title, but let’s get straight to the point.

function LateUpdate(){
if(Input.touchCount > 0) {
  for (i = 0; i<Input.touchCount; i++) {
   var touch : Touch = Input.touches[0];
  if(touch.phase == TouchPhase.Began && guiTexture.HitTest(touch.position)) {
	script.moveright();
                }
           }
       }
}

I have that code, and it works, but when I touch, it only activates it for a split second (it only moves right a few pixels) I’ve tried using while loops and such to make it go continuously, but to no avail.
What’s going on here?
I still have tried more looking at more questions, still to no avail…

Since you set your phase to TouchPhase.Began it will of course will do the job just for a frame because, you know, that phase only happens once for all touches on the screen unless you release your finger off of the screen and touch it again.So do this and it will work;

if(touch.phase != TouchPhase.Ended && guiTexture.HitTest(touch.position))
{
//Do your stuff here

}

Decision rather simple. TouchPhase.Began checks, whether there was a contact to the screen. Therefore if you want that your code was carried out further, you have to try to replace TouchPhase.Began with TouchPhase.Moved. Then processing of an event will happen when the finger moves. Respectively, TouchPhase.Ended means the end of an event of touch, i.e. a finger took away from the screen. If you at all don’t want to become attached to an event of the handler of touch, simply clean from your condition of TouchPhase.Began. Then the script will work irrespective of the fact which the event of touch occurs: contact, movement, retracting finger. And please check this answer if it works.