void SetCartPosition(float distanceAlongPath)
    {
        if (m_Path == null)
        {
            return;
        }

        m_CurrentDistance = m_Path.NormalizePathDistance(distanceAlongPath);
        float pathPos = m_Path.GetPathPositionFromDistance(m_CurrentDistance);

        transform.position = m_Path.EvaluatePosition(pathPos);
        transform.rotation = m_Path.EvaluateOrientation(pathPos);
    }