using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class Sciezka : MonoBehaviour
{

    public Transform[] Punkt;
    [SerializeField] Transform wozek;
    [SerializeField] float predkosc;
    //indeks punktu startowego
    public int idStart = 0;
    // Start is called before the first frame update
    void Start()
    {
        wozek.position = Punkt[idStart].transform.position;
    }
    void RuchObiektu()
    {
        if (idStart <= Punkt.Length - 1)
        {
            wozek.position = Vector3.MoveTowards(wozek.position,
                                     new Vector3(Punkt[idStart].transform.position.x,
                                     wozek.position.y,
                                     Punkt[idStart].transform.position.z),
                                     predkosc * Time.deltaTime);
            Vector3 kierunek=Punkt[idStart].transform.position
                            - wozek.position;
            kierunek.y = 0;

            wozek.rotation = Quaternion.LookRotation(kierunek);

            if (new Vector3(wozek.position.x,
                            Punkt[idStart].transform.position.y,
                            wozek.position.z)== Punkt[idStart].transform.position)
                      idStart += 1;
            if(idStart==Punkt.Length)
                        idStart = 0;
        }
    }
    // Update is called once per frame
    void Update()
    {
        //RuchObiektu();
    }
}
//tylko dla widocznoci cieki w edytorze
[CustomEditor(typeof(Sciezka))]
public class ExampleEditor : Editor
{
    public void OnSceneGUI()
    {
        var t = target as Sciezka;
        Handles.color = Color.yellow;
        for (int i = 0; i < t.Punkt.Length-1; ++i)
        {
            Handles.DrawLine(t.Punkt[i].position, t.Punkt[i + 1].position, 3);
        }
    }
}
