private static void DrawFreeLookGizmos(CinemachineFreeLook vcam, GizmoType selectionType) { // Standard frustum and logo CinemachineVirtualCameraBaseEditor.DrawVirtualCameraBaseGizmos(vcam, selectionType); Color originalGizmoColour = Gizmos.color; bool isActiveVirtualCam = CinemachineCore.Instance.IsLive(vcam); Gizmos.color = isActiveVirtualCam ? CinemachineSettings.CinemachineCoreSettings.ActiveGizmoColour : CinemachineSettings.CinemachineCoreSettings.InactiveGizmoColour; if (vcam.Follow != null) { Vector3 pos = vcam.Follow.position; var TopRig = vcam.GetRig(0).GetCinemachineComponent <CinemachineOrbitalTransposer>(); var MiddleRig = vcam.GetRig(1).GetCinemachineComponent <CinemachineOrbitalTransposer>(); var BottomRig = vcam.GetRig(2).GetCinemachineComponent <CinemachineOrbitalTransposer>(); DrawCircleAtPointWithRadius(pos + Vector3.up * TopRig.m_HeightOffset, TopRig.m_Radius, vcam); DrawCircleAtPointWithRadius(pos + Vector3.up * MiddleRig.m_HeightOffset, MiddleRig.m_Radius, vcam); DrawCircleAtPointWithRadius(pos + Vector3.up * BottomRig.m_HeightOffset, BottomRig.m_Radius, vcam); DrawCameraPath(pos, vcam); } Gizmos.color = originalGizmoColour; }
private static void DrawFreeLookGizmos(CinemachineFreeLook vcam, GizmoType selectionType) { // Standard frustum and logo CinemachineVirtualCameraBaseEditor.DrawVirtualCameraBaseGizmos(vcam, selectionType); Color originalGizmoColour = Gizmos.color; bool isActiveVirtualCam = CinemachineCore.Instance.IsLive(vcam); Gizmos.color = isActiveVirtualCam ? CinemachineSettings.CinemachineCoreSettings.ActiveGizmoColour : CinemachineSettings.CinemachineCoreSettings.InactiveGizmoColour; if (vcam.Follow != null) { Vector3 pos = vcam.Follow.position; var TopRig = vcam.GetRig(0).GetCinemachineComponent <CinemachineOrbitalTransposer>(); var MiddleRig = vcam.GetRig(1).GetCinemachineComponent <CinemachineOrbitalTransposer>(); var BottomRig = vcam.GetRig(2).GetCinemachineComponent <CinemachineOrbitalTransposer>(); Vector3 up = Vector3.up; CinemachineBrain brain = CinemachineCore.Instance.FindPotentialTargetBrain(vcam); if (brain != null) { up = brain.DefaultWorldUp; } Quaternion orient = TopRig.GetReferenceOrientation(up); up = orient * Vector3.up; float rotation = vcam.m_XAxis.Value + vcam.m_Heading.m_HeadingBias; orient = Quaternion.AngleAxis(rotation, up) * orient; CinemachineOrbitalTransposerEditor.DrawCircleAtPointWithRadius( pos + up * TopRig.m_FollowOffset.y, orient, TopRig.m_FollowOffset.z); CinemachineOrbitalTransposerEditor.DrawCircleAtPointWithRadius( pos + up * MiddleRig.m_FollowOffset.y, orient, MiddleRig.m_FollowOffset.z); CinemachineOrbitalTransposerEditor.DrawCircleAtPointWithRadius( pos + up * BottomRig.m_FollowOffset.y, orient, BottomRig.m_FollowOffset.z); DrawCameraPath(pos, orient, vcam); } Gizmos.color = originalGizmoColour; }