41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Code.Track
|
|
{
|
|
public class TrackData
|
|
{
|
|
public List<Vector3> Waypoints { get; }
|
|
public Vector3 StartPosition { get; }
|
|
public Quaternion StartRotation { get; }
|
|
public Vector3 FinishPosition { get; }
|
|
public Quaternion FinishRotation { get; }
|
|
|
|
public TrackData(List<Vector3> waypoints)
|
|
{
|
|
Waypoints = new List<Vector3>(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;
|
|
}
|
|
}
|
|
}
|
|
} |