using System.Collections.Generic; using UnityEngine; namespace Code.Track { public class TrackData { public List Waypoints { get; } public Vector3 StartPosition { get; } public Quaternion StartRotation { get; } public Vector3 FinishPosition { get; } public Quaternion FinishRotation { get; } public TrackData(List waypoints) { Waypoints = new List(waypoints); StartPosition = waypoints[0]; FinishPosition = waypoints[^1]; if (waypoints.Count > 1) { var startDir = (waypoints[1] - waypoints[0]).normalized; StartRotation = Quaternion.LookRotation(startDir, Vector3.up); } else { StartRotation = Quaternion.identity; } if (waypoints.Count > 1) { var finishDir = (waypoints[^1] - waypoints[^2]).normalized; FinishRotation = Quaternion.LookRotation(finishDir, Vector3.up); } else { FinishRotation = Quaternion.identity; } } } }