How to make a character move from side to side in looping, every time he reaches a certain point he turns and goes back to the other side?
public class Teste_plataforma : MonoBehaviour {
public Animator RenaAnima1;
[SerializeField] private float speedMove;
[Header("Objeto a ser movido")]
[SerializeField] private GameObject platform;
[Header("Pontos de referencia")]
[SerializeField] private Transform pointerA, pointerB;
[Header(“Rota para onde ir”)]
[SerializeField] private Transform route;
[SerializeField] private int routeCurrent;
private void Start () {
routeCurrent = 0;
platform.transform.position = pointerA.position;
route.position = pointerB.position;
}
private void Update ()
{
float step = speedMove * Time.deltaTime;
platform.transform.position = Vector3.MoveTowards (platform.transform.position, route.position, step);
if (platform.transform.position == route.position) {
if (routeCurrent == 0) {
transform.Rotate (Time.deltaTime, 180, 0);
routeCurrent = 1;
route.position = pointerA.position;
} else if (routeCurrent == 1) {
route.position = pointerB.position;
routeCurrent = 0;
transform.Rotate (Time.deltaTime, 180, 0);
}
}
}
}
This way it even works, but when I get to the points it stops, it calls an animator, and then it goes back to the other point, it’s a movement like a soldier doing patrol.