using System.Collections; using System.Collections.Generic; using UnityEngine; using Cinemachine; public class CameraShift : MonoBehaviour { public static CameraShift active; [SerializeField] private Camera childCam; [SerializeField] private Transform offset; private bool isCenter = true; private Vector3 targetOffset; [SerializeField] private float cameraSpeed = 5f; [SerializeField] private CinemachineFreeLook freelook; [SerializeField] private float initRadius = 3f; [SerializeField] private float aimingRadius = 2f; //[SerializeField] //private PlayerMovementController movementController; public void ToggleCenter() { isCenter = !isCenter; } public void SetCenter(bool isCenter) { this.isCenter = isCenter; } // Start is called before the first frame update void Start() { targetOffset = Vector3.zero; } // Update is called once per frame 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); } }