using UnityEngine; public class OrbitCameraByPlayer : MonoBehaviour { private Transform Player; public Vector3 offset; public float rotateSpeed = 1f; private Camera thisCamera; private float startFieldOfView; public bool isClose; private void Start() { if (FScriptsHandler.Instance == null) { Object.Destroy(base.gameObject.GetComponent()); return; } thisCamera = GetComponent(); Player = FScriptsHandler.Instance.m_PlayerMain.transform; base.transform.position = Player.transform.position + offset; startFieldOfView = thisCamera.fieldOfView; } private void LateUpdate() { base.transform.LookAt(Player); base.transform.Translate(Vector3.right * Time.fixedUnscaledDeltaTime * rotateSpeed); if (!isClose) { thisCamera.fieldOfView = Mathf.Lerp(thisCamera.fieldOfView, 20f, Time.fixedUnscaledDeltaTime); } else { thisCamera.fieldOfView = Mathf.Lerp(thisCamera.fieldOfView, startFieldOfView, Time.fixedUnscaledDeltaTime * 3f); } } public void UpdatePlayerPosition() { base.transform.position = Player.transform.position + offset; } }