using System.Collections; using System.Collections.Generic; using UnityEngine; public class PathTracer : MonoBehaviour { [SerializeField] private List path; private Vector3 currTargetPos; [SerializeField] private int currTargetIndex; [SerializeField] private float speed; [SerializeField][Tooltip("True = Go back to first pos; False = Inverse list")] private bool loop = true; private Rigidbody rb; // Start is called before the first frame update void Start() { rb = GetComponent(); rb.position = path[0].position; currTargetIndex = 1; currTargetPos = path[currTargetIndex].position; } // Update is called once per frame void Update() { if(Vector3.Distance(transform.position, currTargetPos) <= 0){ currTargetIndex++; if(currTargetIndex >= path.Count){ if(!loop){ path.Reverse(); } currTargetIndex = 0; } currTargetPos = path[currTargetIndex].position; } rb.position = Vector3.MoveTowards(transform.position, currTargetPos, speed/100);//Magic number pour avoir une better time in inspector } }