c# update loop. How to?

Sorry if this question was answered before, but I wasnt able to find a solution.
This is my code:

void Update(){

if(Input.GetMouseButtonDown(0)){
Debug.Log("Click");
}

}

I assumed, that the result would be an increasing number of Debug Logs while I hold the mouse button down. But it only writes one Debug Log per click.
How can one create a loop like I thought it would be?
And how could I decrease the frequency of that loop. I read, that there is no easy way for letting a c# script wait. Is that true?

Thank you.

Input.GetMouseButtonDown() return true only for the frame in which the mouse button is clicked. Input.GetMouseButton() will return true as long as the button is held down. You will get one Debug.Log() statement for each frame. The easiest way to moderate the number of checks is to put the check in a separate function and use InvokeRepeating() to make the checks.

It can be done using coroutines. Coroutines are a bit more complicated in C#, but neither C# nor Javascript allows you to put a ‘yield’ inside Update().

Some info on Coroutines:

http://docs.unity3d.com/Documentation/Manual/Coroutines.html

And Unity Gems has a more in-depth treatment of Coroutines.

This will explain why you are only getting output when you press the button:

Input.GetMouseButtonDown

Update occurs once each frame, so you cannot decrease how often it is called.