- Home /
Error Vector3 does not contain MoveTowards
Hey guys, im trying to make my tank move 1 unit or space at a time. this is what i have atm
 public float speed;
 private Vector3 pos;
 private Transform tr;
 
 void Start () 
     {
         
         pos = transform.position;
         tr = transform;
     }
 
 void Update () 
     {
         if (game.running && Network.player == owner) 
         {
             playerActive = true;
             
             bool shootButton;
             
             if(Input.GetKey(KeyCode.LeftArrow) && tr.position == pos)
             {
                 pos += Vector3.left;
             }
             else if(Input.GetKey(KeyCode.RightArrow) && tr.position == pos)
             {
                 pos += Vector3.right;
             }
             transform.position = Vector3.MoveTowards(transform.position,pos,Time.deltaTime * speed);
but i get an error saying vector3 does not contain MoveTowards. I am using unity 2 because of regulations at university. how do i go around this
If you look at the docs included with your version of Unity 2.x does Vector3 have a $$anonymous$$oveTowards member? 
that would have been helpfull if the uni supplied the documentation for it.
Answer by whydoidoit · Apr 02, 2014 at 01:54 PM
Here's a version of MoveTowards:
       Vector3 MoveTowards(Vector3 current, Vector3 target, float maxDistance) {
             Vector3 difference = (target - current);
             float distanceToMove = Mathf.Min(difference.magnitude, maxDistance);
             return current + difference.normalized * distanceToMove;
       }
Answer by patrik-org · Apr 02, 2014 at 02:57 PM
If MoveTowards isn't available, you should be able to do something like this:
 Vector3 movementVector = pos - transform.position;
 movementVector.Normalize();
 transform.position += movementVector * speed * Time.deltaTime;
Answer by Mint92 · Apr 04, 2014 at 11:29 AM
thanks for the response guys, I got it to work in the end
 if(Input.GetButtonDown("Right"))
             {
                 transform.position = new Vector3(transform.position.x + 1.0f, transform.position.y,transform.position.z);
             }
 else if(Input.GetButtonDown("Left"))
             {
                 transform.position = new Vector3(transform.position.x -1.0f, transform.position.y,transform.position.z);
             }
Your answer
 
 
             Follow this Question
Related Questions
3D Character Controller slowing down the higher the slope angle (both up and down) 1 Answer
EnemyHover Script Error? 0 Answers
Player isn't affected by AddForce(), Lerp() etc. 1 Answer
Making a bubble level (not a game but work tool) 1 Answer
How to get our character controller script to make our player move? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                