using Cinemachine; using UnityEngine; public class CameraShift : MonoBehaviour { public static CameraShift active; [SerializeField] private Camera childCam; [SerializeField] private Transform offset; [SerializeField] private float cameraSpeed = 5f; [SerializeField] private CinemachineFreeLook freelook; [SerializeField] private float initRadius = 3f; [SerializeField] private float aimingRadius = 2f; private bool isCenter = true; private Vector3 targetOffset; // Start is called before the first frame update private void Start() { targetOffset = Vector3.zero; } // Update is called once per frame private void Update() { active = this; if (isCenter) { targetOffset = Vector3.zero; freelook.m_Orbits[1].m_Radius = Mathf.Lerp(freelook.m_Orbits[1].m_Radius, initRadius, Time.deltaTime * cameraSpeed); } else { targetOffset = offset.localPosition; freelook.m_Orbits[1].m_Radius = Mathf.Lerp(freelook.m_Orbits[1].m_Radius, aimingRadius, Time.deltaTime * cameraSpeed); } childCam.transform.localPosition = Vector3.Lerp(childCam.transform.localPosition, targetOffset, Time.deltaTime * cameraSpeed); } //[SerializeField] //private PlayerMovementController movementController; public void ToggleCenter() { isCenter = !isCenter; } public void SetCenter(bool isCenter) { this.isCenter = isCenter; } }