To help gain more insight into your problem, I recommend liberally sprinkling Debug.Log() statements through your code to display information in realtime.
Doing this should help you answer these types of questions:
- is this code even running? which parts are running? how often does it run?
- what are the values of the variables involved? Are they initialized?
Knowing this information will help you reason about the behavior you are seeing.
If you are running a mobile device you can also see the console output. Google for how.
Beyond that, here is some help on how to report your problem productively in the Unity3D forums:
If you post a code snippet, ALWAYS USE CODE TAGS:
How to use code tags: Using code tags properly