Well first of all you can declare your variables `static` and then you don't have to do the `FindObjectOfType` nonsense. Just call your variables exactly the same way you have them in your example code.
Second, try declaring the types of your variables. So, like this:
My guess is that you changed the values of your public variables at some point in the script, without realising (or forgetting - heck it happens all the time to me :P) how unity serializes public variables
What happens is that unity will keep on persisting the values which were set in the inspector (which will have been 1 for var2, true for var 3) after the first time they're set, and disregarding script changes for the values after that
If you want to change them, you should change them in the inspector for the script
Note - I still think you should use Tetrad's answer of making them static.