Esempio n. 1
0
        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;
        }
Esempio n. 2
0
    private void UpdateCamera()
    {
        if (playerCameraMode == MyEnum.PlayerCameraMode.Roaming)
        {
            if (cameraLerp < 1f)
            {
                cameraLerp += Time.deltaTime * 3f;
                cinemachineRoamingCamera.GetRig(1).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.x = Mathf.Lerp(0f, 0.4f, cameraLerp);
                cinemachineRoamingCamera.GetRig(1).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.y = Mathf.Lerp(0f, 0.5f, cameraLerp);
                cinemachineRoamingCamera.GetRig(1).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.z = Mathf.Lerp(0f, 0.2f, cameraLerp);

                cinemachineRoamingCamera.GetRig(2).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.x = Mathf.Lerp(0f, 0.4f, cameraLerp);
                cinemachineRoamingCamera.GetRig(2).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.y = Mathf.Lerp(0f, 0.5f, cameraLerp);
            }
        }
        else
        {
            if (cameraLerp > 0f)
            {
                cameraLerp -= Time.deltaTime * 3f;
                cinemachineRoamingCamera.GetRig(1).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.x = Mathf.Lerp(0f, 0.4f, cameraLerp);
                cinemachineRoamingCamera.GetRig(1).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.y = Mathf.Lerp(0f, 0.5f, cameraLerp);
                cinemachineRoamingCamera.GetRig(1).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.z = Mathf.Lerp(0f, 0.2f, cameraLerp);

                cinemachineRoamingCamera.GetRig(2).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.x = Mathf.Lerp(0f, 0.4f, cameraLerp);
                cinemachineRoamingCamera.GetRig(2).GetCinemachineComponent <Cinemachine.CinemachineComposer>().m_TrackedObjectOffset.y = Mathf.Lerp(0f, 0.5f, cameraLerp);
            }
        }
    }
Esempio n. 3
0
 public override void Attached()
 {
     if (entity.IsOwner)
     {
         cam  = GetComponent <Cinemachine.CinemachineFreeLook>();
         rig0 = cam.GetRig(0).GetCinemachineComponent <CinemachineBasicMultiChannelPerlin>();
         rig1 = cam.GetRig(1).GetCinemachineComponent <CinemachineBasicMultiChannelPerlin>();
         rig2 = cam.GetRig(2).GetCinemachineComponent <CinemachineBasicMultiChannelPerlin>();
     }
 }
Esempio n. 4
0
    void Start()
    {
        freelookCamera  = GetComponent <Cinemachine.CinemachineFreeLook>();
        startHighOffset = (freelookCamera.GetRig(0).GetCinemachineComponent <CinemachineComposer>()).m_TrackedObjectOffset;
        startMidOffset  = (freelookCamera.GetRig(1).GetCinemachineComponent <CinemachineComposer>()).m_TrackedObjectOffset;
        startLowOffset  = (freelookCamera.GetRig(2).GetCinemachineComponent <CinemachineComposer>()).m_TrackedObjectOffset;

        // Ugly shit due to camera prefab being shitty
        cameraXAdjuster = 0.4f;
        cameraYAdjuster = 0.4f;
        notGroundedAttenuationFactor = 0.33f;
        lerpTendToMiddleRigSpeed     = 0.85f;
        ///////////////////////////////////////////////////
    }
        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;
        }