How to get a character to move left and right in Unity 2D.
//C# Unity2D //I wrote this and I'm quite new to Unity and C# so it could probobally be improved. using System.Collections; using System.Collections.Generic; using UnityEngine; public class enemymovement : MonoBehaviour { private float ogpos; //Original Position of the enemy public int distance; //How far we want to move in each direction private bool going; //Says if we are going left or right private float npos; //Our negative destination private float ppos; //Our positive destination private Rigidbody2D rb; //RigidBody2D void Start() { going=true; rb=GetComponent<Rigidbody2D>(); //RigidBody2D ogpos=transform.position.x; //We do this to get the position it started in. This is only the x along with ppos and npos npos=ogpos-distance; //Subtract from ogpos for the positive destination ppos=ogpos+distance; //Add to ogpos for positive destination } void Update() { //Check if we are going right or left, true being right. if(going==true){ rb.velocity = new Vector2(1,rb.velocity.y); // Add to go right The 1 is the speed //Check if it's equal to or greater than our positive destination if(transform.position.x>=ppos){ going=false; //Swap going } } if(going==false){ rb.velocity = new Vector2(-1,rb.velocity.y); //Subtract to go left //Check if it's equal to or less than our negative destination if(transform.position.x<=npos){ going=true; //Swap going the negative one is its speed so if it was a variable multiply by negative 1 } } } }