protected void ApplyCameraSettings() { Camera playerCamera = Camera.main; CameraOperator.SetActiveCamera(playerCamera); if (crosshair != null) { crosshair.gameObject.SetActive(false); } if (cameraScheme == CameraScheme.FirstPerson || cameraScheme == CameraScheme.ThirdPerson) { playerCamera.fieldOfView = cameraFOV; CameraOperator.AttachTo(GetLookTransform()); playerCamera.transform.localRotation = Quaternion.identity; if (cameraScheme == CameraScheme.ThirdPerson) { playerCamera.transform.localEulerAngles = new Vector3(cameraAngle, 0.0f, 0.0f); playerCamera.transform.localPosition = playerCamera.transform.forward * cameraDistance; } else { if (crosshair != null) { crosshair.gameObject.SetActive(true); } } } else if (cameraScheme == CameraScheme.Overhead) { if (cameraFollow) { CameraLookAtFocus(); CameraFollowFocus(); } playerCamera.transform.position = new Vector3(playerCamera.transform.position.x, cameraHeight, playerCamera.transform.position.z); } }