private static void DrawCameraPath(Vector3 atPos, Quaternion orient, CinemachineFreeLook vcam)
        {
            Matrix4x4 prevMatrix = Gizmos.matrix;

            Gizmos.matrix = Matrix4x4.TRS(atPos, orient, Vector3.one);

            const int kNumStepsPerPair = 30;
            Vector3   currPos          = vcam.GetLocalPositionForCameraFromInput(0f);

            for (int i = 1; i < kNumStepsPerPair + 1; ++i)
            {
                float   t       = (float)i / (float)kNumStepsPerPair;
                Vector3 nextPos = vcam.GetLocalPositionForCameraFromInput(t);
                Gizmos.DrawLine(currPos, nextPos);
                Gizmos.DrawWireSphere(nextPos, 0.02f);
                currPos = nextPos;
            }
            Gizmos.matrix = prevMatrix;
        }
        private static void DrawCameraPath(Vector3 atPos, CinemachineFreeLook vcam)
        {
            Matrix4x4 prevMatrix   = Gizmos.matrix;
            Matrix4x4 localToWorld = Matrix4x4.TRS(
                atPos, Quaternion.AngleAxis(vcam.m_XAxis.Value, Vector3.up), Vector3.one);

            Gizmos.matrix = localToWorld;

            const int kNumStepsPerPair = 30;
            Vector3   currPos          = vcam.GetLocalPositionForCameraFromInput(0f);

            for (int i = 1; i < kNumStepsPerPair + 1; ++i)
            {
                float   t       = (float)i / (float)kNumStepsPerPair;
                Vector3 nextPos = vcam.GetLocalPositionForCameraFromInput(t);
                Gizmos.DrawLine(currPos, nextPos);
                currPos = nextPos;
            }
            Gizmos.matrix = prevMatrix;
        }