title: Vector3.MoveTowards Putting Object in Wrong Place
body: <p>For some reason, my objects never translate the correct amount. Why is that? I've tried using other functions but they don't animate the same way the below function does. So how can I set it so that it translates exactly 200 pixels below where it was previously.</p>
  
  <p><strong>UPDATE:</strong>
  Since I haven't found a solution yet, I am providing a more in-depth explanation of the problem. </p>
  
  <p>I have 6 UIImages, all of them are attached to a script called "LogDrop". There is also a GameControl script, once the user does something, a boolean called "active" is set to "true". In the "LogDrop" script, the update function is continuously running and checking if "active" is set to true, and if it is, the logs are all supposed to drop down 300 spaces.</p>
  
  <p>When I start the program, the user triggers the active boolean and the logs move down BUT NOT 300 spaces. </p>
  
  <p>My current code for the Update is this:</p>
  
  <pre><code>void Update()
  {
      if (active)
      {
          if (!positionSet)
          {
              endPosition = new Vector3(transform.position.x, transform.position.y - 300, transform.position.z);
              positionSet = true;
          }
          if (Vector3.Distance(transform.position, endPosition) &gt; 0.00001)
          {
              transform.position = Vector3.MoveTowards(transform.position, endPosition, 250 * Time.deltaTime);
          }
          else
          {
              active = false;
              positionSet = false;
          }
      }
  }
  </code></pre>
  
  <p>When I run the program and "active" is triggered, the logs move down 730.8 spaces even. I don't know where the value 730.8 is coming from... Once the logs move and finish moving, "active" is set back to false. However, when the user triggers the boolean again, the logs refuse to move again even though the function runs again.</p>