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; }