Run-and-capture/Assets/Scripts/CameraSizeController.cs

34 lines
995 B
C#

using Cinemachine;
using UnityEngine;
public class CameraSizeController : MonoBehaviour
{
[SerializeField] private float _maxSize = 7.5f;
[SerializeField] private float _camExpandSmoothness = 0.01f;
[SerializeField] private TileOwner _trackingPlayer = TileOwner.Ariost;
[SerializeField] private CinemachineVirtualCamera _cam;
private float _startSize;
private void Awake()
{
_startSize = _cam.m_Lens.OrthographicSize;
}
private void FixedUpdate()
{
UpdateCamSize();
}
private void UpdateCamSize()
{
int maxTilesNumber = TileManagment.levelTiles.Count;
int playerTilesNumber = TileManagment.charTiles[(int) _trackingPlayer].Count;
float camSizeDelta = _maxSize - _startSize;
float targetSize = _startSize + (float) playerTilesNumber / maxTilesNumber * camSizeDelta;
_cam.m_Lens.OrthographicSize = Mathf.Lerp(_cam.m_Lens.OrthographicSize, targetSize, _camExpandSmoothness);
}
}