Mint92
1
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
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;
}
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;
Mint92
4
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);
}