How can I return back to script's "function Start()"?

I'm using GridMove (http://www.unifycommunity.com/wiki/index.php?title=GridMove) to have grid based movement in game I'm working on. I tried breaking the script down to 'FixedUpdate' function running instead of Start, but I'm having the same problem.

If I tie the whole script to one if() test either to allow player control or disallow, I'm unable to give the control back to player even if I change the control var its not working again. Obiviously the start function ends if I give any chance for it to stop, but I had the same problem with fixedupdate.

Can I somehow restart the script? For example if I put somesort of test to fixedupdate where it listens to player control and if I give it back, it would reinitialize the script to return back to the "start" function.

A weird question put short: Can I return back to function Start() at will? Or is it gone for good if I ever dare to leave from it :)

There's no reason you can't call Start at your leisure. Unity calls it once, but then it's all yours; the only other difference between it and other functions is that it can't take parameters. You could make another function called Start() that does take parameters, but Unity won't call that one automatically, and you can only do that after you've defined a Start function without parameters elsewhere in the script.

function Update () {
    Start();
}